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

このエントリーをはてなブックマークに追加

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

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

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

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

Actionscript:
  1. NativeWindow.orderToFront();
  2. NativeWindow.orderToBack();
  3. NativeWindow.orderInFrontOf(window:NativeWindow);
  4. NativeWindow.orderInBackOf(window:NativeWindow);

を使います。

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

Actionscript:
  1. (NativeWindow instance).orderToFront();

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

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

Actionscript:
  1. (NativeWindow instance).alwaysInFront = true;
  2. (NativeWindow instance).alwaysInFront = false;

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

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

alwaysInFront = false なNativeWindowの

Actionscript:
  1. orderInBackOf(window:NativeWindow);
  2. orderInFrontOf(window:NativeWindow);

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

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

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

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





blog.quq.jp




Profile
quq.jp / クックジェイピー

東京で働くFlashなどインタフェース系デベロッパー。Adobe AIR アプリ ”ブログパーツデスクトップ” 、iPhone アプリ ”twitOneday” などを開発。
詳しくはこちら

Contact
twtitter @quqjp

作ったもの
ブログパーツデスクトップ
twitOneday
ポータブル Wi-Fi info