2011-10-06 79 views
1

我有一個Adobe Air應用程序(AS3,而不是Flex),有2個窗口。當我點擊離開他們到另一個桌面程序,我得到一個「停用」事件(如你所期望的)。空氣本機窗口活動窗口更改

當我點擊說窗口#1我得到一個「激活」事件(如你所期望的)。

但是當我從1號窗口到2號窗口時,我什麼都沒有。我相信這是因爲Air應用程序仍然是活躍的程序,只是一個不同的窗口。

但是我有必要知道我什麼時候從一個窗口走到另一個窗口。

我到目前爲止提出的可怕的解決方案是有一個onEnterFrame並檢查當前窗口是否爲活動窗口。但我更願意做這樣一個更好的方式,這樣的黑客攻擊。

我已經去Stage,NativeApplicationNative Window事件,他們都沒有做我所需要的。任何人都可以指向我可能忽略的另一個事件嗎?

+0

我不知道,它似乎像偵聽激活應該工作。你確定你是從正確的調度員那裏聽的嗎?如果切換到另一個應用程序,然後返回到窗口2,窗口1是否觸發激活事件? –

+0

是的,如果你從窗口#1到其他應用,然後窗口#1(或窗口#2)它觸發一個激活。但是,如果你從窗口#1到窗口#2或窗口#2到窗口#1(例如,你永遠不會離開空氣應用程序),則不觸發任何事件。 – WORMSS

+1

你在監聽NativeWindow對象上的事件嗎?如果我記得正確,窗口應該派遣他們自己的激活/停用事件,這些事件與應用程序激活/停用事件分開。 –

回答

1

直接在NativeWindow對象上偵聽窗口激活事件。 (所有顯示對象調度激活/停用事件,但這些都是由應用程序觸發的 - 或者瀏覽器中的SWF對象 - 獲得或失去操作系統焦點。)