每当在屏幕上单击按钮时,Flash AS3就会按下特定的键盘键

时间:2013-05-12 19:38:40

标签: actionscript-3 flash

您好我正在使用Flash中的游戏,在这个应用程序的移动版本中我试图使它在按钮上的mousedown事件中它将等于左,右键码等正在激活?

AS3中是否有办法通过鼠标点击等其他方式激活键盘键?

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

此代码似乎正常工作

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

2 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分: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
{
}