1

您好,我正在开发 Flash 游戏,在此应用程序的移动版本中,我试图在按钮上的 mousedown 事件中使其等于左、右键码等处于活动状态?

在 AS3 中是否可以通过鼠标点击等其他方式激活键盘键?

leftButton.addEventListener(MouseEvent.MOUSE_DOWN, leftKeyPress)
function leftKeyPress(e:MouseEvent){
    // Left Key is pressed
        Keyboard.LEFT;
        trace("trace statement");
}

此代码似乎不起作用

编辑:这也很重要,这个类和使用键盘的类(播放器)在两个单独的类中,所以我试图让它在点击时被识别为键盘上的按键

4

2 回答 2

0

对不起,这一切都错了。你不能像那样触发键盘事件。这就是捕捉事件的方式。你的函数也是一个 MouseEvent。应该是键盘事件。一年后我打开了 Flash。反正。AFAI 了解您正在尝试禁用键盘,直到鼠标单击某处。

leftButton.addEventListener(MouseEvent.MOUSE_DOWN, leftKeyPress);
var keyEnabled:Boolean = false;
function leftKeyPress(e:MouseEvent){
    keyEnabled = true;
}

key.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);

function keyPressed(e:KeyboardEvent):void{
    if(keyPressed){
        //do whatever here
    }
}
于 2013-05-12T19:56:32.683 回答
0

您可以手动调度键盘事件;然而,这不是最好的设计模式:

dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN,
                                true,
                                false,
                                Keyboard.LEFT,
                                Keyboard.LEFT));

最好建立两个处理程序:

addEventListener(KeyboardEvent.KEY_DOWN, moveKeyHandler);
addEventListener(MouseEvent.CLICK, moveMouseHandler);

从每个处理程序中,调用一个从处理程序中抽象出运动功能的函数:

protected function moveKeyHandler(event:KeyboardEvent):void
{
    /* switch statement for key */
    moveLeft();
}

protected function moveMouseHandler(event:MouseEvent):void
{
    /* switch statement for button target */
    moveLeft();
}

protected function moveLeft():void
{
}
于 2013-05-12T19:59:12.780 回答