开发者问题收集

未捕获的 TypeError:调用 push() 时出现类型错误

2013-09-26
91

我正在尝试模拟 canvas 上的烟雾。我想创建一个新的烟雾,然后将其推入粉扑阵列,但我不断获得 “ usfult typeError:type error” error。

有人知道我缺少什么吗?

789029608
1个回答

在提供的小提琴中, addPuffs 未定义。您需要根据您的业务逻辑定义此变量。此外, oPoint.xoPoint.y 也未定义,它们也必须根据您的业务逻辑进行初始化。

var oPoint = {x:1, y:2}; //declare according to logic
var addPuffs = true; //some logic here
if ( addPuffs && ( puffLength < maxParticles )) {
    puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
        posX: oPoint.x,
        posY: oPoint.y,
        scale: .1,
        age: 0
    });
}

此外,在 canvas 上使用 drawImage() 时,我相信第一个参数必须是 DOM 元素,而不是图像的路径。

尝试:

  var img = new Image();
  img.src = "/static/img/particle.png";
  //Omitted code
  ctx.drawImage(img,80,80,1,1);
Kevin Bowersox
2013-09-26