返回帧后,AS3键向下侦听器无法正常工作

时间:2014-07-03 04:42:35

标签: actionscript-3

我有两个框架,一个标有" mainFrame"另一个标有" secondFrame"。当程序启动时,用户单击一个名为start的按钮,该按钮将用户发送到" secondFrame"。一旦用户在第二帧上,跟踪他们按下的任何键的KeyCode,如果按下的键具有68的KeyCode,则程序返回到" mainFrame"。这很好用,问题是当用户再次点击按钮并返回" secondFrame"此时KeyCode不会跟踪。 以下是mainFrame上的代码:

stop();
start.addEventListener(MouseEvent.CLICK, startGame);

function startGame(e:MouseEvent):void
{
    gotoAndStop("secondFrame");
}

第二个框架上的代码:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownCheck);

function keyDownCheck(event:KeyboardEvent):void
{
    trace(event.keyCode);
    if(event.keyCode == 68)
    {
        gotoAndStop("mainFrame");
        stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownCheck);
    }
}

我确定我做了一些愚蠢明显的事情,阻止了这项工作,但我无法弄明白什么。

3 个答案:

答案 0 :(得分:0)

尝试将this.setFocus()添加到第二帧的代码中。

答案 1 :(得分:0)

我找到了答案!好吧,Zavr和Vesper实际上说它是xD重点是应用程序设置的,所以stage.focus()=这个工作。当我第一次尝试时,我不知道我做了什么导致了错误,但现在可以正常工作了xD谢谢大家!

答案 2 :(得分:-1)

将第二帧代码更改为:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownCheck);
function keyDownCheck(event:KeyboardEvent):void
{
    trace(event.keyCode);
    if(event.keyCode == 68)
    {
        stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownCheck);
        gotoAndStop("mainFrame");        
    }
}