Adobe AIR ウィンドウの最前面表示

Adobe Air1.5にて 、
他のアプリケーションのウィンドウを含め、
AIR アプリのウィンドウを最前面に表示することに
ちょっとつまづいたのでメモ。

調査は、NativeWindowType.LIGHTWEIGHT なウィンドウ且つWindowsの例です。

Airでのウィンドウは、NativeWindowを指します。

Airでのウィンドウの前後配置処理を行うには、
NativeWindowの

[as]
NativeWindow.orderToFront();
NativeWindow.orderToBack();
NativeWindow.orderInFrontOf(window:NativeWindow);
NativeWindow.orderInBackOf(window:NativeWindow);
[/as]

を使います。

全面に出すという処理をしたいので、
単純に、

[as]
(NativeWindow instance).orderToFront();
[/as]

をしてみたところ全面に出ましたが最全面ではなく、
他のアプリケーションのウィンドウの上に持ってくることができませんでした。
どうやら挙動を見る限り、
そのAIRアプリが持つウィンドウの中で一番前に出す
ということのようでした。

なので、alwaysInFrontを使ってやるしかないかもですね。
一瞬alwaysInFrontをtrueにして、falseに戻します。

[as]
(NativeWindow instance).alwaysInFront = true;
(NativeWindow instance).alwaysInFront = false;
[/as]

これで解決。他のアプリケーションのウィンドウも含め
最全面にウィンドウを持ってくることができました。

調査していて、関連で気づいたのですが、

alwaysInFront = false なNativeWindowの

[as]
orderInBackOf(window:NativeWindow);
orderInFrontOf(window:NativeWindow);
[/as]

alwaysInFront = true な NativeWindow を指定すると
alwaysInFront が 勝手に true に変更されてしまうっぽい。

Flashで作るAIRアプリケーションレシピブック
面白法人カヤック

おすすめ平均
starsおもしろいしお手軽な内容
starsコンパクトなレシピ本!!

楽天ブックスで詳しく見る by G-Tools