Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的图像不能显示在javascript画布上?_Javascript_Image_Html5 Canvas - Fatal编程技术网

为什么我的图像不能显示在javascript画布上?

为什么我的图像不能显示在javascript画布上?,javascript,image,html5-canvas,Javascript,Image,Html5 Canvas,下面是这个类的构造函数中的代码 this.canvas = document.getElementById("myCanvas"); this.canvasContext = this.canvas.getContext('2d'); this.canvasContext.font = "45px Arial"; this.canvas.onshow = function () { console.log("here!");

下面是这个类的构造函数中的代码

 this.canvas = document.getElementById("myCanvas");
 this.canvasContext = this.canvas.getContext('2d');
 this.canvasContext.font = "45px Arial";
 this.canvas.onshow = function () {
 console.log("here!");
 window.renderer.updateDimesions();
这里是一种方法,我根据它的质量来创建一个单元。目前它是一个原型代码。除了渲染图片,其他一切都正常。错误消息为“未捕获类型错误:无法读取未定义的属性“drawImage”

drawUnits=函数(场景图形,uType)
{
var aLength=window.SceneGraph.getLength();
var偏移=0;
对于(变量i=0;i
我通过将onload更改为事件侦听器来修复它

 van.addEventListener('load', e => {
          this.canvasContext.drawImage(van,516, (i* 50) - 18);
        });

代码似乎不完整。缺少一些结构。你能显示完整的代码吗?还可以在onload回调中添加一个console.log来验证加载的图像。你也应该添加一个onerror回调,如果有错误,则记录。我添加了整个代码,也添加了一个console.log,并且图像确实加载了。此内部onload指e Image(van)对象。请看事件侦听器没有修复此问题。您已使用箭头函数表达式修复了它。换句话说,如果将e=>替换为函数(),它将无法再次工作。您可以通过执行van.onload=()=>{this.canvasContext.drawImage(van,516,(i*50)-18);}来修复它使原始事件侦听器方法正常工作。
 van.addEventListener('load', e => {
          this.canvasContext.drawImage(van,516, (i* 50) - 18);
        });