2013-11-15 39 views
0

我对AS3很新,所以如果这是完全基本的道歉,但我不能从我的代码得到任何输出。我正在尝试制作Flash游戏,并试图测试此代码段以确保Flash正在接收用户的键盘输入。如上所述,我没有收到任何错误,但我也没有在输出窗口中找到任何东西。我确信我错过了其他所有人都明显看到的东西。如果有人对可能出现的问题有所了解,我会非常感激。 下面是代码:Actionscript 3:没有编译器错误,但我不能得到任何输出

import flash.events.EventDispatcher; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 

    function keyDownHandler(event:KeyboardEvent):void 
    { 
    if(event.keyCode == Keyboard.LEFT) 
    { 
     trace("left pressed"); 
    } 
    else if(event.keyCode == Keyboard.RIGHT) 
    { 
     trace("right pressed"); 
    } 
    else if(event.keyCode == Keyboard.UP) 
    { 
     trace("up pressed"); 
    } 
    else if(event.keyCode == Keyboard.DOWN) 
    { 
     trace("down pressed"); 
    } 

    stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler); 

    } 
    function keyUpHandler(event:KeyboardEvent):void 
    { 
    if(event.keyCode == Keyboard.LEFT) 
    { 
     trace("left released"); 
    } 
    else if(event.keyCode == Keyboard.RIGHT) 
    { 
     trace("right released"); 
    } 
    else if(event.keyCode == Keyboard.UP) 
    { 
     trace("up released"); 
    } 
    else if(event.keyCode == Keyboard.DOWN) 
    { 
     trace("down released"); 
    } 

     stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler); 

    } 

回答

0

试试这个代码:

import flash.events.EventDispatcher; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 

function keyDownHandler(event:KeyboardEvent):void 
{ 
    if(event.keyCode == Keyboard.LEFT) 
    { 
     trace("left pressed"); 
    } 
    else if(event.keyCode == Keyboard.RIGHT) 
    { 
     trace("right pressed"); 
    } 
    else if(event.keyCode == Keyboard.UP) 
    { 
     trace("up pressed"); 
    } 
    else if(event.keyCode == Keyboard.DOWN) 
    { 
     trace("down pressed"); 
    } 
} 
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler); 

function keyUpHandler(event:KeyboardEvent):void 
{ 
    if(event.keyCode == Keyboard.LEFT) 
    { 
     trace("left released"); 
    } 
    else if(event.keyCode == Keyboard.RIGHT) 
    { 
     trace("right released"); 
    } 
    else if(event.keyCode == Keyboard.UP) 
    { 
     trace("up released"); 
    } 
    else if(event.keyCode == Keyboard.DOWN) 
    { 
     trace("down released"); 
    } 
} 
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler); 

让我知道这是否正常工作与否。

+0

这工作完美AS3Programmer。非常感谢你。 – Rith

2

你的听众从来没有注册,你有他们在关键的处理功能,这当然会永远不会触发无监听器,并因此将不会注册监听器。您必须将它们移到功能块之外。

相关问题