2012-08-24 60 views
1

我需要檢查是否有任何按鍵被按下。打開Laszlo onkeydown事件問題

我正在使用此代碼。當我運行它時,它什麼都不做,除非我點擊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

在哪個運行時你會遇到這個問題?我假設它是verion 5.0? –

+0

@ r.bitter:在5.0以及3.3代碼 – karthick

回答

1

現在假設您的意思是SWF運行時,因爲您提到了3.3。 keydown的處理由瀏覽器或瀏覽器中的Flash插件管理 - 不共享。只要Flash組件沒有焦點,所有事件都將被髮送到瀏覽器。一旦Flash獲得焦點,它將嘗試捕獲所有事件,在Flash和瀏覽器之間創建一個障礙。

在我的操作系統上,Ctrl-o被映射爲用瀏覽器打開一個文件。在瀏覽器中加載Flash電影時,如果Flash具有焦點,則Ctrl-O命令將不起作用。當我點擊地址欄時,它再次工作。在這裏有很多關於SWF /瀏覽器焦點行爲的問題。

+0

好吧,我明白了.. – karthick