我有一个带闪存标题的网页。在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);
答案 0 :(得分:1)
我认为您需要在处理程序中指定事件的类型(即KeyboardEvent
),因为这样调度对象在其实例传递给处理程序时将被强制转换为Event
对象。 Event
类没有 keyCode 属性,因此不符合提交表单的条件。这就是表单未提交的原因。
所以,试着替换
function onKeyDownFunc(evt)
行,
function onKeyDownFunc(evt:KeyboardEvent)
它应该可以解决问题。
度过美好的一天。