Adobe Air1.5にて 、
他のアプリケーションのウィンドウを含め、
AIR アプリのウィンドウを最前面に表示することに
ちょっとつまづいたのでメモ。
調査は、NativeWindowType.LIGHTWEIGHT なウィンドウ且つWindowsの例です。
Airでのウィンドウは、NativeWindowを指します。
Airでのウィンドウの前後配置処理を行うには、
NativeWindowの
Actionscript:
-
NativeWindow.orderToFront();
-
NativeWindow.orderToBack();
-
NativeWindow.orderInFrontOf(window:NativeWindow);
-
NativeWindow.orderInBackOf(window:NativeWindow);
を使います。
全面に出すという処理をしたいので、
単純に、
Actionscript:
-
(NativeWindow instance).orderToFront();
をしてみたところ全面に出ましたが最全面ではなく、
他のアプリケーションのウィンドウの上に持ってくることができませんでした。
どうやら挙動を見る限り、
そのAIRアプリが持つウィンドウの中で一番前に出す
ということのようでした。
なので、alwaysInFrontを使ってやるしかないかもですね。
一瞬alwaysInFrontをtrueにして、falseに戻します。
Actionscript:
-
(NativeWindow instance).alwaysInFront = true;
-
(NativeWindow instance).alwaysInFront = false;
これで解決。他のアプリケーションのウィンドウも含め
最全面にウィンドウを持ってくることができました。
調査していて、関連で気づいたのですが、
alwaysInFront = false なNativeWindowの
Actionscript:
-
orderInBackOf(window:NativeWindow);
-
orderInFrontOf(window:NativeWindow);
に alwaysInFront = true な NativeWindow を指定すると
alwaysInFront が 勝手に true に変更されてしまうっぽい。
| Flashで作るAIRアプリケーションレシピブック | |
| 面白法人カヤック
おすすめ平均 |
|

6月 16, 2009 at 1:34 PM




私をフォローしてください. @quqjp





