我有2個AIR應用程序(A
和B
),它們能夠通過LocalConnection
對象進行通信。我已經證實,郵件確實正在被正確地發送/接收。如何管理外部應用程序中的窗口
我希望能夠有A
告知B
來到前面。這兩個應用程序是全屏:
stage.fullScreenSourceRect = new Rectangle(0, 0, 1080, 1920);
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
我已經嘗試了幾種排列,但由於尚未似乎沒有任何工作。
private function initSlave(channel: String): void {
conn = new LocalConnection();
conn.client = {
'activateSlave': activateSlave
};
conn.allowDomain("*");
conn.connect("_" + channel);
}
private function activateSlave(): void {
stage.nativeWindow.orderToFront();
// or
stage.nativeWindow.activate();
// or
stage.nativeWindow.alwaysInFront = true;
stage.nativeWindow.alwaysInFront = false;
}
如果我留在窗口模式(stage.displayState = StageDisplayState.NORMAL
)這兩個應用程序,然後切換alwaysInFront
實際工作。撥打activate()
或orderToFront()
仍然無能爲力。如果我嘗試切換alwaysInFront
,然後將應用程序設置爲全屏,應用程序將在我的窗口應用程序後面全屏顯示。也許在將應用設置爲全屏之前,我應該等待一個事件?
我發現一個線索提到orderToFront()
只能在同一個應用程序中相對於windows工作,這就解釋了爲什麼它似乎沒有做任何事情。
有沒有人有任何見解把它拉掉?也許有一種方法可以將B
嵌入到應用程序A
中,因此它們實際上是相同的應用程序?我不確定如何使用AIR應用程序執行此操作,就像僅需加載SWF一樣,因爲需要外部資源。
如果兩個應用程序都不是全屏幕,您是否可以重現相同的問題? – keyle 2012-02-06 22:57:56
我使用窗口化的應用程序進行了一些測試,從而更新了問題。 'activate()'在文檔中明確表示它應該把窗口放在前面並獲得焦點,但我看不到任何行爲。 – 2012-02-06 23:07:18
orderToBack()是否工作?我在想某種停用的窗口問題。 – keyle 2012-02-07 02:45:00