AIR では、ウィンドウの表示順序を複数の方法で直接変更できます。ウィンドウの表示順序の前面は背面に移動したり、ウィンドウを別のウィンドウの前や後に移動したりできます。同時に、ウィンドウをアクティブ化することでウィンドウの順序を変更することもできます。
alwaysInFront
プロパティを
true
に設定することで、あるウィンドウを他のウィンドウより前面に保つことができます。このように設定されたウィンドウが複数ある場合、同じ設定のウィンドウ間で表示順序が並べ替えられます。ただし、それらのウィンドウは、
alwaysInFront
が false に設定されたウィンドウよりは常に前面に配置されます。
また、最上位グループのウィンドウは、AIR アプリケーションがアクティブではない場合でも、他のアプリケーションのウィンドウより前面に表示されます。この動作はユーザーにとっては迷惑である場合があるので、
alwaysInFront
を
true
に設定するのは、それが必要であって適切である場合にのみ行う必要があります。例えば、次のような場合には使用が正当化されます。
-
ツールチップ、ポップアップリスト、カスタムメニュー、コンボボックスなどのコントロール用の一時的なポップアップウィンドウ。これらのウィンドウはフォーカスを失ったときに閉じる必要があるので、別のウィンドウの表示の邪魔になるのを避けることができます。
-
特に緊急を要するエラーメッセージと警告。ユーザーが直ちに応答しないと元に戻すことのできない変更が発生する可能性がある場合は、警告ウィンドウを最前面に移動してもかまいません。ただし、ほとんどのエラーと警告は、通常のウィンドウ表示順序で処理できます。
-
短時間だけ表示されるトーストスタイルのウィンドウ。
注意:
AIR では、
alwaysInFront
プロパティの適切な使用は強制されません。ただし、ユーザーのワークフローを妨害するようなアプリケーションは、ごみ箱行きになることでしょう。
ウィンドウが他のウィンドウを所有している場合、所有下にあるウィンドウは常に所有者のウィンドウより前に配置されるように並べ替えられます。他のウィンドウを所有するウィンドウで
orderToFront()
を呼び出したり、
alwaysInFront
を
true
に設定した場合、所有下にあるウィンドウも所有者ウィンドウと一緒に並べ替えられ、他のウィンドウの前面に配置されます。ただし、所有下にあるウィンドウは、所有者ウィンドウの前面に引き続き表示されます。
所有下にあるウィンドウからウィンドウの並べ替えメソッドを呼び出した場合、所有者ウィンドウが同じであるウィンドウ間では通常通り動作します。ただし、所有下にあるウィンドウのグループ全体が、そのグループ以外のウィンドウと比較され、並べ替えられることがあります。例えば、所有下にあるウィンドウから
orderToFront()
を呼び出すと、そのウィンドウ自身、その所有者、所有者が同じであるその他すべてのウィンドウが、ウィンドウ表示順序の前面に移動します。
NativeWindow クラスには、ウィンドウ間の相対的な表示順序を設定する次のプロパティとメソッドが用意されています。
メンバー
|
説明
|
alwaysInFront プロパティ
|
ウィンドウを最上位ウィンドウグループに表示するかどうかを指定します。
通常は、
false
が最善の設定です。値を
false
から
true
に変更すると、そのウィンドウは他のウィンドウの前面に移動します(ただし、アクティブにはなりません)。値を
true
から
false
に変更すると、そのウィンドウは最上位グループに残っているウィンドウの背後に移動しますが、他のウィンドウよりは前面になっています。プロパティをウィンドウの現在値と同じ値に設定すると、ウィンドウの表示順序は変わりません。
alwaysInFront
設定は、他のウィンドウに所有されているウィンドウに対しては効果はありません。
|
orderToFront()
|
ウィンドウを前面に移動します。
|
orderInFrontOf()
|
ウィンドウを特定のウィンドウのすぐ前面に表示します。
|
orderToBack()
|
ウィンドウを他のウィンドウの背後に移動します。
|
orderBehind()
|
ウィンドウを特定のウィンドウのすぐ背後に表示します。
|
activate()
|
ウィンドウを前面に移動します(同時に、ウィンドウを表示状態にしてフォーカスを割り当てます)。
|
注意:
ウィンドウが非表示状態(
visible
が
false
)または最小化状態の場合は、表示順序メソッドを呼び出しても順序は変更されません。
Linux オペレーティングシステムでは、別のウィンドウマネージャーにより、ウィンドウの表示順序に関する別の規則が適用されます。