|
|
AIR ウィンドウの基礎AIR には、Flash®、Flex™ および HTML のプログラミング技法を使用してオペレーティングシステムのネイティブウィンドウを作成するための、簡単に使用できるクロスプラットフォームのウィンドウ API が用意されています。 AIR では、アプリケーションの外観を柔軟に開発できます。ユーザが作成するウィンドウは、標準のデスクトップアプリケーションのようになります。Macintosh で実行する場合は Apple スタイルに一致し、Windows で実行する場合は Microsoft の規則に準拠し、Linux で実行する場合はウィンドウマネージャに適合します。いずれの場合も、プラットフォーム固有のコード行を含める必要はありません。または、Flex フレームワークで提供されているスキンとして使用できて拡張性のあるクロムを使用して、アプリケーションの実行環境に左右されない独自のスタイルを作成することもできます。 さらには、デスクトップに対する透明度とアルファブレンドを完全にサポートするベクトルとビットマップのアートワークを使用して、独自のウィンドウクロムを描画することもできます。矩形のウィンドウに飽きているなら、丸いウィンドウを作成してみてください。 AIR のウィンドウAIR では、ウィンドウを操作するための 3 つの API がサポートされています。
ActionScript ウィンドウNativeWindow クラスでウィンドウを作成するときは、Flash Player のステージと表示リストを直接使用します。NativeWindow に表示オブジェクトを追加するには、ウィンドウステージの表示リストまたはステージの別の表示オブジェクトコンテナにオブジェクトを追加します。 Flex フレームワークウィンドウFlex Framework では、固有のウィンドウコンポーネントが定義されています。これらのコンポーネント(mx:WindowedApplication と mx:Window)はフレームワークの外部では使用できず、したがって HTML ベースの AIR アプリケーションでは使用できません。 HTML ウィンドウHTML ウィンドウを作成するときは、HTML、CSS および JavaScript を使用してコンテンツを表示します。表示オブジェクトを HTML ウィンドウに追加するには、そのコンテンツを HTML DOM に追加します。HTML ウィンドウは、NativeWindow の特殊なカテゴリです。AIR ホストでは、基になる インスタンスへのアクセスを提供する nativeWindownativeWindow プロパティが、HTML ウィンドウで定義されています。このプロパティを使用して、ここで説明する NativeWindow のプロパティ、メソッドおよびイベントにアクセスできます。 注意: また、JavaScript の Window オブジェクトには、moveTo() や close() など、コンテナウィンドウのスクリプトを作成するためのメソッドもあります。オーバーラップするメソッドを使用できる場合は、最も便利なものを使用してかまいません。
初期アプリケーションウィンドウアプリケーションの最初のウィンドウは、AIR によって自動的に作成されます。AIR は、アプリケーション記述ファイルの initialWindow エレメントで指定されているパラメータを使用して、ウィンドウのプロパティとコンテンツを設定します。 ルートコンテンツが SWF ファイルの場合、AIR は NativeWindow インスタンスを作成して、SWF ファイルを読み込み、それをウィンドウステージに追加します。ルートコンテンツが HTML ファイルの場合、AIR は HTML ウィンドウを作成して HTML を読み込みます。 アプリケーション記述子で指定するウィンドウプロパティについて詳しくは、アプリケーション記述ファイルの構造を参照してください。 ネイティブウィンドウクラスネイティブウィンドウ API には、次のクラスが含まれます。
ネイティブウィンドウのイベントフローネイティブウィンドウは、イベントを送出して、重要な変更が発生しようとしていること、または既に発生したことを、関係するコンポーネントに通知します。多くのウィンドウ関連イベントは、ペアで送出されます。最初のイベントは、変更が発生しようとしていることを警告します。2 番目のイベントは、変更が行われたことを通知します。警告イベントはキャンセルできますが、通知イベントはキャンセルできません。次のシーケンスは、ユーザがウィンドウの最大化ボタンをクリックすると発生するイベントのフローを示したものです。
ネイティブウィンドウのスタイルと動作を制御するプロパティウィンドウの基本的な外観と動作は、次のプロパティが制御します。
ウィンドウを作成するときは、ウィンドウコンストラクタに渡す NativeWindowInitOptions オブジェクトで、これらのプロパティを設定します。AIR は、初期アプリケーションウィンドウのプロパティを、アプリケーション記述子から読み取ります(ただし、type プロパティはアプリケーション記述子では設定できず、常に normal に設定されます)。ウィンドウの作成後に、プロパティを変更することはできません。 これらのプロパティの設定の中には、同時に指定できないものがあります。例えば、systemChrome が standard のとき、または transparent が true のときには、type を lightweight に設定することはできません。 ウィンドウタイプAIR のウィンドウタイプでは、ネイティブオペレーティングシステムの chrome 属性と visibility 属性を結合して、ウィンドウの 3 つの機能タイプを作成します。コードでタイプ名を参照するには、NativeWindowType クラスで定義されている定数を使用します。AIR には次のウィンドウタイプがあります。
ウィンドウクロムウィンドウクロムは、ユーザがデスクトップ環境内のウィンドウを操作できるようにする一連のコントロールです。クロムエレメントには、タイトルバー、タイトルバーボタン、ボーダー、サイズ変更グリップなどがあります。 システムクロムsystemChrome プロパティには、standard または none を設定できます。ユーザのオペレーティングシステムによって作成およびスタイル設定される標準コントロールのセットをウィンドウで使用するには、standard システムクロムを選択します。ウィンドウに独自のクロムを使用するには、none を選択します。コードでシステムクロムの設定を参照するには、NativeWindowSystemChrome クラスで定義されている定数を使用します。 システムクロムは、システムによって管理されます。アプリケーションでは、コントロール自体に直接アクセスすることはできませんが、コントロールが使用されるときに送出されるイベントには対応できます。ウィンドウに標準のクロムを使用する場合は、transparent プロパティを false に設定し、type プロパティを normal または utility に設定する必要があります。 ウィンドウの透明度ウィンドウとデスクトップまたは他のウィンドウとのアルファブレンドを可能にするには、transparent プロパティを true に設定します。transparent プロパティは、ウィンドウを作成する前に設定する必要があり、変更することはできません。 透明なウィンドウには、デフォルトの背景はありません。アプリケーションによって描画されたオブジェクトを含まないウィンドウ領域は表示されません。表示されたオブジェクトのアルファ設定が 1 未満の場合は、同じウィンドウ内の他の表示オブジェクト、他のウィンドウ、デスクトップなど、オブジェクトの下にあるすべてのものが透けて見えます。大きいアルファブレンド領域のレンダリングには時間がかかる場合があるので、この効果は控えめに使用する必要があります。 ボーダーが不規則な形のウィンドウ、または「フェードアウト」するウィンドウや不可視のウィンドウを作成するには、透明なウィンドウが便利です。 重要: Linux の場合、マウスイベントは完全に透明なピクセルを通過できません。完全に透明で面積が広いウィンドウを作成すると、見えないウィンドウによってユーザの操作がブロックされ、デスクトップ上にある他のウィンドウやアイテムがアクセス不能になるため、望ましくありません。Mac OS X および Windows の場合、マウスイベントは完全に透明なピクセルを通過します。
透明度は、システムクロムを使用するウィンドウでは使用できません。さらに、HTML 内の SWF コンテンツと PDF コンテンツは、透明ウィンドウに表示されません。詳しくは、HTML ページに SWF コンテンツまたは PDF コンテンツを読み込む場合の考慮事項を参照してください。 オペレーティングシステムによっては、ハードウェア構成、ソフトウェア構成またはユーザの表示オプションにより、透明度がサポートされない場合があります。透明度がサポートされていない場合、アプリケーションの背景は黒になります。この場合、アプリケーションの透明領域は不透明の黒として表示されます。 ウィンドウの透明度が使用可能かどうかは、静的な NativeWindow.supportsTransparency プロパティによって報告されます。このプロパティで false をテストする場合は、警告ダイアログをユーザに表示するか、フォールバックとして矩形の不透明なユーザインターフェイスを表示することができます。Windows および Macintosh オペレーティングシステムでは、常に透明度がサポートされます。Linux オペレーティングシステムでのサポートには、合成ウィンドウマネージャが必要ですが、合成ウィンドウマネージャがアクティブな場合でも、ユーザの表示オプションまたはハードウェア構成により、透明度は使用できません。 HTML アプリケーションウィンドウでの透明度デフォルトでは、HTML ウィンドウおよび HTMLLoader オブジェクトに表示される HTML コンテンツの背景は、コンテナウィンドウが透明であっても不透明です。HTML コンテンツに表示されるデフォルトの背景をオフにするには、paintsDefaultBackground プロパティを false に設定します。次の例では、HTMLLoader を作成し、デフォルトの背景をオフにしています。 var htmlView:HTMLLoader = new HTMLLoader(); htmlView.paintsDefaultBackground = false; この例では、JavaScript を使用して HTML ウィンドウのデフォルトの背景をオフにしています。 window.htmlLoader.paintsDefaultBackground = false; HTML ドキュメント内のエレメントに背景色を設定すると、そのエレメントの背景は透明ではなくなります。透明度(または不透明度)の値の部分的な設定は、サポートされていません。ただし、透明な PNG 形式のグラフィックをページまたはページエレメントの背景として使用することで、同じような視覚効果を得ることができます。 表示ウィンドウカタログ次の表に、異なるウィンドウプロパティ設定の組み合わせが Mac OS X、Windows および Linux オペレーティングシステムでどのような視覚効果になるかを示します。
*Ubuntu と Compiz ウィンドウマネージャ 注意: Mac OS X ツールバー、Mac OS X プロキシアイコン、Windows タイトルバーアイコン、代替システムクロムの各システムクロムエレメントは、AIR ではサポートされていません。
|