Flash AS2如果(Key.getCode()== Key.ENTER)不起作用?

时间:2015-07-19 08:21:29

标签: flash

帮助,我是AS2的新手(Flash一般),我试图制作一个由键盘控制的基本菜单。这是我的代码

onClipEvent(enterFrame){
if(Key.isDown(Key.DOWN))
{  
if(_root.menu1._currentframe==1)
{
  _root.menu1.gotoAndStop(2);
}
}

if(Key.isDown(Key.UP))
{  
if(_root.menu1._currentframe==2)
{
  _root.menu1.gotoAndStop(1);
}
}

if (Key.getCode() == Key.ENTER) 
{  
if(_root.menu1._currentframe==1)
{
gotoAndStop("stage1");
}
   else{ gotoAndStop("stage2"); }
}
}

向上和向下按钮工作正常,但输入没有。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的代码可能正在运行,有时当您在Flash环境或IDE中进行测试时,Key.ENTER事件并不会显示。

尝试发布代码并在浏览器中运行代码,也可以添加动态文本字段或使用控制台进行调试。

您还可以使用keyListener对象而不是enterFrame事件。如果您想尝试,请尝试将此代码添加到时间轴中的框架

//import the external interface code
import flash.external.ExternalInterface;

// Create a key listener object;
var keyListener:Object = new Object();

// Add the onKeyDown functionality
keyListener.onKeyDown = function() {

    // Convert incoming key presses to Ascii 
    var keyLetter = String.fromCharCode(Key.getAscii());
    // get the Key code
    var keyCode =   Key.getCode();
    // output the keyCode and keyLetter to the browser console / developer tools / firebug
    // When testing in a browser press F12 on the keyboard to show them
    // make sure you click on the SWF movie to get the focus then press keys
    ExternalInterface.call("console.log", "["+keyCode+"] "+keyLetter)
    // trace this so we can compare in Flash
    trace( "["+keyCode+"] "+keyLetter);

    if (Key.isDown(Key.ENTER)) {
        ExternalInterface.call("console.log", "ENTER key pressed!")
    }

};

// Add the listener
Key.addListener(keyListener);