2011-07-08 68 views
0

我正在開發AIR 2.0應用程序,並且希望將非活動超時功能放入其中。 (即:如果用戶在5分鐘內沒有按下某個鍵,則應用程序會將用戶註銷。我已經實現了flash.utils庫中的本地超時功能,並偵聽鼠標或鍵盤事件以清除/重置在我的主MXML中超時,唯一的問題是我的應用程序使用TitleWindows,並且鍵盤事件似乎不會冒泡(或返回)到主要的Mxml中,因此我的應用程序認爲存在不活動即使在標題窗口中鍵和鼠標事件觸發時也是如此。應用程序超時功能

有沒有一種方法可以在全局範圍內固有地監聽鍵盤和鼠標事件?將偵聽器添加到每個TitleWindow中(並檢查它是否打開或不)

很多比ks的任何幫助。

+0

我認爲你可以添加你的鍵盤事件監聽器到整個舞臺,而不是特定的影片剪輯。 –

回答

0

從在UIComponent(可能是主要的UI類)的任何地方:

private function onCreationComplete():void 
{ 
    stage.addEventListener(KeyboardEvent.DOWN, onKeyboard); 
} 

private function onKeyboard(e:KeyboardEvent):void 
{ 
    // do something 
} 
+0

謝謝,這是一個焦點問題和'舞臺'中的事件的組合。現在工作正常 - 感謝您的幫助。 –

0

我認爲你正在運行到一個焦點問題,它始終是令人沮喪的,檢查我的回答這裏 -

Event listener to keyboard event not listening in a module

嘗試在答案底部的textinput建議以測試是否存在問題。

+0

謝謝Nate,看起來像焦點問題是問題的一部分。 –

+0

沒有概率,Adobe公司自己沒有指出焦點問題令人氣憤。您可以在他們自己的頁面中看到他們在所有示例代碼中使用.setFocus()的示例 - 否則從未在頁面描述/說明中提及它。奇怪:) – Nate