我需要检查是否有按键被按下。
我正在使用这个代码。当我运行它时,它不会做任何事情,除非我点击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>发布于 2012-08-24 22:39:42
现在假设你指的是SWF运行时,因为你提到了3.3。快捷键的处理要么由浏览器管理,要么由浏览器中的Flash插件管理-它不是共享的。只要Flash组件不具有焦点,所有事件都将被发送到浏览器。一旦Flash获得焦点,它将尝试捕获所有事件,从而在Flash和浏览器之间创建一道屏障。
在我的操作系统上,Ctrl-o被映射为使用浏览器打开一个文件。在浏览器中加载Flash影片时,如果Flash具有焦点,则Ctrl-O命令将不起作用。当我点击地址栏时,它又开始工作了。这里有很多关于SWF/浏览器焦点行为的问题。
https://stackoverflow.com/questions/12110924
复制相似问题