所以,我试图创建一些圈子,然后我希望它们倒下。下面是代码和演示:demo FireBug告诉我,未定义对象的方法“move”没有定义,所以当我想创建一个obect数组时,某些东西必定是错误的。纠正我的错误并考虑到我刚刚开始在JS中学习面向对象编程。
答案 0 :(得分:4)
不是创建多个事件,而是在那里创建一个事件并循环:
setInterval(function(){
ctx.clearRect(0,0,1000,1000); //Clear the canvas here
for (i = 0;i<bubble.length;++i)
{
bubble[i].move();
bubble[i].redraw();
}
},32);
问题是范围问题。
您编写它的方式i
在执行的所有事件中的值都为10.
工作小提琴:http://jsfiddle.net/some/fGChQ/16/
你的另一个问题是你在重绘中清除画布......对于每一个圆圈。
答案 1 :(得分:1)
我已经提出了fork这个解决循环问题的问题,画布矩形的清除似乎也存在导致一些干扰的问题
答案 2 :(得分:-1)
for (i = 0;i<bubble.length - 1; ++i)
{
console.log(bubble[i].y)
setInterval(function(){
bubble[i].move();
bubble[i].redraw();
},32);
}
bubble.length为10,数组为索引0-9。 bubble [10]未定义,因此您无法调用方法移动它。