为什么一次只有一个动作?

时间:2013-04-14 21:43:48

标签: actionscript-3 flash

我是Flash的新手并尝试构建一个非常简单的游戏,包括使用箭头键移动一个动画片段并避开其他三个影片剪辑。第一帧上还有一个开始按钮。只要其他4个被注释掉,每个动作脚本都可以自行工作。但是一旦我尝试使用多个动作脚本,它们都不起作用。我将每个动作都放在它自己的图层中。

我确信这是显而易见的我缺少的,但多个动作脚本同时如何工作? 非常感谢,非常感谢

这是代码

/*Start*/
import flash.events.MouseEvent;

stop();
btn1.addEventListener(MouseEvent.CLICK,buttonClickHandler);
function buttonClickHandler(event:MouseEvent):void{
    gotoAndPlay(2);
}




/*Drive*/
function hearKey(yourEvent:KeyboardEvent):void{
if (yourEvent.keyCode==Keyboard.RIGHT){
LionOne_mc.x +=  8;
};
if (yourEvent.keyCode==Keyboard.LEFT){
LionOne_mc.x -=  8;
};
if (yourEvent.keyCode==Keyboard.UP){
LionOne_mc.y -=  8;
};
if (yourEvent.keyCode==Keyboard.DOWN){
LionOne_mc.y +=  8;
};
};
stage.addEventListener(KeyboardEvent.KEY_DOWN,hearKey);



/*Colision*/
kangaTwo.addEventListener(Event.ENTER_FRAME,LionHit2);
function LionHit2(event:Event):void {
if (kangaTwo.hitTestObject(LionOne_mc)) {
tackle_mc.visible = true;
} else {
tackle_mc.visible = false;
}
}

1 个答案:

答案 0 :(得分:0)

您可以在一个框架中跨多个图层创建脚本。这没有问题。它们只会从最顶层到底层运行。

虽然技术上可行,但我不推荐它。时间线代码在最好的时候是混乱的,所以最好将它全部保存在一个层中。最佳做法是将此图层置于顶部,不包含可视元素,并将图层命名为“操作”。

如果您正在呼叫gotoAndStop(2);,则第一帧上的所有代码都将停止运行。

当你有机会时,你一定要考虑使用外部ActionScript类,而不是编写时间轴代码。这里有一个很棒的教程:active.tutsplus.com - AS3 101: OOP Introduction – Basix