抓住在网页上的闪存块中输入

时间:2012-04-03 13:02:26

标签: actionscript-3 flash actionscript-2

我有一个带闪存标题的网页。在flash标题(块)中,不同的下拉菜单与“提交”按钮一起出现。

当用户按下“输入”时,我想提交表单。 但是,我似乎无法抓住任何钥匙:

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
root.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
optiesPanelNew.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
optiesPanelNew.ddOptiesMerk.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 

function onKeyDownFunc(evt)
{
    if (evt.keyCode == Keyboard.ENTER)
    {
        submitForm();
    }
}

如果页面的html部分(非flash)具有焦点,则此javascript有效:

document.body.onkeydown = function theFunction()
{
    alert("keydown");
}

编辑:哦不,flash文件是用AS2编写的...对不起: - / 仅供参考:我最终使用的代码是:(AS2):

var keyListener:Object = new Object();
keyListener.onKeyDown = function():Void
{
    if(Key.getCode()==13)
        submitForm();

}

Key.addListener(keyListener); 

1 个答案:

答案 0 :(得分:1)

我认为您需要在处理程序中指定事件的类型(即KeyboardEvent),因为这样调度对象在其实例传递给处理程序时将被强制转换为Event对象。 Event类没有 keyCode 属性,因此不符合提交表单的条件。这就是表单未提交的原因。

所以,试着替换

function onKeyDownFunc(evt)

行,

function onKeyDownFunc(evt:KeyboardEvent)

它应该可以解决问题。

度过美好的一天。