打开Laszlo onkeydown活动问题

时间:2012-08-24 14:01:33

标签: openlaszlo lzx

我需要检查是否按下了任何键。

我正在使用此代码。当我运行它时它没有做任何事情,除非我点击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>

1 个答案:

答案 0 :(得分:1)

现在假设您的意思是SWF运行时,因为您提到3.3。 keydown的处理由浏览器管理,或者由浏览器中的Flash插件管理 - 它不是共享的。只要Flash组件没有焦点,所有事件都将被发送到浏览器。一旦Flash具有焦点,它将尝试捕获所有事件,在Flash和浏览器之间创建障碍。

在我的操作系统上,Ctrl-o被映射为使用浏览器打开文件。在浏览器中加载Flash影片时,如果Flash具有焦点,则Ctrl-O命令将不起作用。当我点击位置栏时,它再次正常工作。在SO上有很多关于SWF /浏览器焦点行为的问题。