我只是Flash的初学者,我无法解决这个问题。闪存执行循环 - 每击一次只带走一次健康
我该如何让每个命中的动作只执行一次?
这是我的代码:
stage.addEventListener(Event.ENTER_FRAME,loop);
function loop (event:Event):void
{
for (var i:int = hBottleArray.length-1; i >= 0; i--){
if (runner.hitTestObject(hBottleArray[i])){
health++;
hBottleArray.removeAt(i);
}
}
for (var i:int = killerarray.length-1; i >= 0; i--){
if (runner.hitTestObject(killerarray[i])){
health--;
killerarray.removeAt(i);
sign1.x-=40;
tip1.x-=40;
bg.x-=40;
secretmessage.x-=40;
healthbottle1.x-=40;
killer.x-=40;
killer2.x-=40;
killer3.x-=40;
platform.x-=40;
}
}
if (bg.x>327)
{
sign1.x-=40;
tip1.x-=40;
bg.x-=40;
secretmessage.x-=40;
healthbottle1.x-=40;
killer.x-=40;
killer2.x-=40;
killer3.x-=40;
platform.x-=40;
}
}
结果: 它是一种警告,并在输出面板中的另一个错误.. 警告3596:重复的变量定义。 OUTPUT PANEL:TypeError:错误#1006:removeAt不是函数。 在ObstacleCourse_fla :: MainTimeline /环路()
请帮助如何解决
FOR NEAL DAVIS我使用Flash播放器11.2 r2o2
请大家注意,这是不我整个脚本
如果您使用的是Flash Player,则使用哪个版本?这是一个Air应用程序吗?要使用removeAt,您需要Flash播放器19或更高版本或Air 19或更高版本。如果您使用的是旧版本,请根据我对此的评论进行升级或使用'.splice'。 –