Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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
html5画布中的多个图像未按正确顺序堆叠_Html_Canvas - Fatal编程技术网

html5画布中的多个图像未按正确顺序堆叠

html5画布中的多个图像未按正确顺序堆叠,html,canvas,Html,Canvas,我将多个png透明图像添加到html5画布上,一个在另一个之上,但它们没有按正确的顺序堆叠(由包含这些图像的url的数组定义) 我在其他讨论中读到,这可能是一个关闭问题,但目前还没有解决方案 这是我的代码: function drawCanvas() { var canvas; var context; var imgArray = [ 'images/img1.png', 'images/img2.png', 'images/img3.png', '

我将多个png透明图像添加到html5画布上,一个在另一个之上,但它们没有按正确的顺序堆叠(由包含这些图像的url的数组定义)

我在其他讨论中读到,这可能是一个关闭问题,但目前还没有解决方案

这是我的代码:

function drawCanvas() {
  var canvas;
  var context;
  var imgArray = [
    'images/img1.png',
    'images/img2.png',
    'images/img3.png',
    'images/img4.png',
    'images/img5.png',
    'images/img6.png'
  ];
  canvas = document.getElementById('myCanvas');
  context = canvas.getContext("2d");
  for (var i = 0; i < imgArray.length; i++) {
    var img = new Image();
    img.src = imgArray[i];

    var drawTee = function(i, context, canvas) {
      return function() {
        console.log(i, 'loaded')
        context.drawImage(this, 0, 0);
      }
    };
    img.onload = drawTee(i, context, canvas);
  }
};
函数drawCanvas(){
var帆布;
var语境;
var Imgaray=[
“images/img1.png”,
'images/img2.png',
“images/img3.png”,
“images/img4.png”,
“images/img5.png”,
“images/img6.png”
];
canvas=document.getElementById('myCanvas');
context=canvas.getContext(“2d”);
对于(变量i=0;i

有人能帮我吗?

问题是画布上图像的顺序取决于图像完成加载的顺序

解决方案:等待所有图像完成加载,然后将它们添加到画布

function drawCanvas() {
  var canvas;
  var context;
  var imgArray = [
    'images/img1.png',
    'images/img2.png',
    'images/img3.png',
    'images/img4.png',
    'images/img5.png',
    'images/img6.png'
  ];
  var images = [];
  canvas = document.getElementById('myCanvas');
  context = canvas.getContext("2d");
  var loadCount = 0;
  for (var i = 0; i < imgArray.length; i++) {
    var img = new Image();
    img.src = imgArray[i];
    images.push(img);

    img.onload = function() {
       if(++loadCount == imgArray.length) {
          for(var i=0; i < imgArray.length; i++) {
             context.drawImage(images[i], 0, 0);
          }
       }
    };
  }
};
函数drawCanvas(){
var帆布;
var语境;
var Imgaray=[
“images/img1.png”,
'images/img2.png',
“images/img3.png”,
“images/img4.png”,
“images/img5.png”,
“images/img6.png”
];
var图像=[];
canvas=document.getElementById('myCanvas');
context=canvas.getContext(“2d”);
var loadCount=0;
对于(变量i=0;i