我需要检查是否按下了任何键。
我正在使用此代码。当我运行它时它没有做任何事情,除非我点击laszlo屏幕为什么会发生这种情况?
<canvas height="250" debug="true">
<debug height="90%" />
<handler name="onkeydown" reference="lz.Keys" args="k">
Debug.debug("key %w %s", k, "down");
</handler>
<handler name="onkeyup" reference="lz.Keys" args="k">
Debug.debug("key %w %s", k, "up");
</handler>
<method name="pressA" args="ignore=null">
Debug.debug("A pressed");
</method>
<handler name="oninit">
var del = new LzDelegate(this, "pressA");
lz.Keys.callOnKeyCombo(del, ["A"]);
</handler>
</canvas>
答案 0 :(得分:1)
现在假设您的意思是SWF运行时,因为您提到3.3。 keydown的处理由浏览器管理,或者由浏览器中的Flash插件管理 - 它不是共享的。只要Flash组件没有焦点,所有事件都将被发送到浏览器。一旦Flash具有焦点,它将尝试捕获所有事件,在Flash和浏览器之间创建障碍。
在我的操作系统上,Ctrl-o被映射为使用浏览器打开文件。在浏览器中加载Flash影片时,如果Flash具有焦点,则Ctrl-O命令将不起作用。当我点击位置栏时,它再次正常工作。在SO上有很多关于SWF /浏览器焦点行为的问题。