0

我是 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;
}
}
4

1 回答 1

0

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

虽然在技术上是可行的,但我不推荐它。时间线代码在最好的时候是混乱的,所以最好把它全部放在一层中。最佳实践也是将此图层置于顶部,其上没有视觉元素,并将图层命名为“Actions”。

如果您正在调用gotoAndStop(2);,那么第一帧上的所有代码都将停止运行。

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

于 2013-04-15T00:27:46.637 回答