所以,我正在尝试创建几个圆圈,然后我希望它们掉下来。下面是代码和演示:demo FireBug 告诉我没有为未定义的对象定义方法“move”,所以当我想创建一个对象数组时一定有问题。纠正我的错误并考虑到我刚刚开始学习 JS 中的面向对象编程。
问问题
1908 次
3 回答
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/
您的另一个问题是您在重绘中清除了画布......对于每个圆圈。
于 2012-08-10T21:07:00.943 回答
1
我已经对此进行了分叉,以解决循环问题,清除画布矩形似乎也存在问题,导致了一些干扰
于 2012-08-10T21:17:50.943 回答
-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] 未定义,因此您不能在其上调用方法 move 。
于 2012-08-10T20:56:38.967 回答