我是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;
}
}
答案 0 :(得分:0)
您可以在一个框架中跨多个图层创建脚本。这没有问题。它们只会从最顶层到底层运行。
虽然技术上可行,但我不推荐它。时间线代码在最好的时候是混乱的,所以最好将它全部保存在一个层中。最佳做法是将此图层置于顶部,不包含可视元素,并将图层命名为“操作”。
如果您正在呼叫gotoAndStop(2);
,则第一帧上的所有代码都将停止运行。
当你有机会时,你一定要考虑使用外部ActionScript类,而不是编写时间轴代码。这里有一个很棒的教程:active.tutsplus.com - AS3 101: OOP Introduction – Basix