我有一个框架,里面有动作。代码不在函数中,因此它循环。现在我添加了一个新场景,它立即跳转到新场景。是否有一个我可以使用的循环,只有在player1和thisBall之间发生碰撞时才会执行?
答案 0 :(得分:2)
作为null评论,不要使用场景(它们真的是一袋伤害)。尽管如此,你似乎还需要一个游戏循环。这很常见......
addEventListener(Event.ENTER_FRAME, onEnter);
function onEnter(e:Event):void {
//do stuff
}
您需要考虑的方式就像看视频一样。每次“框架”运行一些逻辑,例如ball.x += 1;
,每次屏幕更新时都会将球移动到屏幕右侧(例如,新的“框架”)。如果您想在满足条件时做其他事情,可以将其添加到循环逻辑中。
function onEnter(e:Event):void {
ball.x += 1;
if (ball.x == player.x) {
trace("You've hit the player with the ball.")
}
}
这是非常基本的,如果您使用的是类或更大的框架,我不会这样解决它,但是现在这应该可以帮到你。
答案 1 :(得分:0)
如果在根时间轴中,您有两个MovieClip,一个在第1帧,第一个在第2帧,您可以在主文档中使用它:
public class Main extends MovieClip { public function Main() { super(); stop(); addEventListener('collision', onCollision); } private function onCollision(e:Event) { nextFrame(); } }
然后,在第1帧的MC中的任何地方(希望在附加的类中),您可以拥有以下代码:
dispatchEvent(new Event('collision', true));
您的主要文档类将“听到”该事件并转到下一帧,其中包含您希望接下来看到的内容。