Actionscript 3 &引用;如果(加上){object.y-=10;}";-每死一堆

Actionscript 3 &引用;如果(加上){object.y-=10;}";-每死一堆,actionscript-3,flash,Actionscript 3,Flash,我在课堂上做游戏,我搞不懂。 每当我的角色输了,游戏就会跳转到“重试”屏幕。当我按下gotoAndPlay(1)按钮时,代码“Rakett.Rita.y-=10;”堆叠起来,使对象下次移动速度增加一倍。 我尝试卸载MC,加载另一个场景而不是另一个帧,以及其他各种事情。我不能让它工作 此外,每当我按enter键时,用于对象的tween就会崩溃。有没有办法禁用回车键 谢谢! 这是我的密码: var upPressed: Boolean = false; var downPressed:

我在课堂上做游戏,我搞不懂。 每当我的角色输了,游戏就会跳转到“重试”屏幕。当我按下gotoAndPlay(1)按钮时,代码“Rakett.Rita.y-=10;”堆叠起来,使对象下次移动速度增加一倍。 我尝试卸载MC,加载另一个场景而不是另一个帧,以及其他各种事情。我不能让它工作

此外,每当我按enter键时,用于对象的tween就会崩溃。有没有办法禁用回车键

谢谢! 这是我的密码:

var upPressed: Boolean = false;      
var downPressed: Boolean = false;
var leftPressed: Boolean = false;
var rightPressed: Boolean = false;

RakettRita.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);
增加^

function fl_MoveInDirectionOfKey_2(event: Event) {

if (upPressed) {
    RakettRita.y -= 10;
    RakettRita.rotation = -20;
}
if (downPressed) {
    RakettRita.y += 10;
    RakettRita.rotation = 40;

}   
// if hit
if (trær.hitTestPoint(RakettRita.x, RakettRita.y, true)) {
// Go to losing-screen
gotoAndStop(215)
    }

}

function fl_SetKeyPressed_2(event: KeyboardEvent): void {
switch (event.keyCode) {
    case Keyboard.UP:
        {
            upPressed = true;
            break;
        }
    case Keyboard.DOWN:
        {
            downPressed = true;
            break;
        }

}
}

function fl_UnsetKeyPressed_2(event: KeyboardEvent): void {
switch (event.keyCode) {
    case Keyboard.UP:
        {
            upPressed = false;
            break;
        }
    case Keyboard.DOWN:
        {
            downPressed = false;
            break;
        }

 }
}

当您进入重试屏幕时,需要删除这些事件侦听器。否则,下次运行此框架的代码时,它将添加侦听器的副本,所有操作都将发生两次。

听起来很合乎逻辑!你知道我是怎么做到的吗?这是我的第一个AS3脚本。删除事件侦听器就像添加它们一样。您可能做了如下操作:addEventListener(KeyboardEvent.MOUSE\u DOWN,yourFunction)。因此,您需要执行removeEventListener(KeyboardEvent.MOUSE_DOWN,yourFunction)。尝试在赢或输的帧中添加此代码,但无效。我还在我的原始帖子中添加了其余的代码。我做错了什么?非常感谢你的帮助!RakettRita.removeEventListener(Event.ENTER_FRAME,fl_MoveInDirectionOfKey_2);阶段。移除VentListener(KeyboardEvent.KEY_向下,fl_设置键按下2);阶段。移除VentListener(KeyboardEvent.Keyu向上,fl\u未设置Keypressed\u 2);好了!我通过在原始帧上的IF语句中添加removeevenllistener解决了这个问题。非常感谢你!