HTML ウィンドウを作成するには、JavaScript で
Window.open()
メソッドを呼び出すか、または AIR で HTMLLoader クラスの
createRootWindow()
メソッドを呼び出します。
セキュリティサンドボックス内の HTML コンテンツは、JavaScript の標準の
Window.open()
メソッドを使用できます。コンテンツがアプリケーションサンドボックスの外部で実行している場合は、マウスクリックやキー押下などのユーザー操作に対して呼び出すことができるのは、
open()
メソッドだけです。
open()
を呼び出すと、指定した URL にあるコンテンツを表示するために、システムクロムを使用するウィンドウが作成されます。次に、例を示します。
newWindow = window.open("xmpl.html", "logWindow", "height=600, width=400, top=10, left=10");
注意:
ActionScript で HTMLHost クラスを拡張し、JavaScript の
window.open()
関数で作成されるウィンドウをカスタマイズできます。
HTMLHost クラスの拡張について
を参照してください。
アプリケーションセキュリティサンドボックス内のコンテンツは、ウィンドウ作成用のさらに強力なメソッドである
HTMLLoader.createRootWindow()
にアクセスできます。このメソッドを使用すると、新規ウィンドウ用のすべての作成オプションを指定できます。例えば、次の JavaScript コードでは、システムクロムを使用しない最小タイプウィンドウを、300x400 ピクセルのサイズで作成しています。
var options = new air.NativeWindowInitOptions();
options.systemChrome = "none";
options.type = "lightweight";
var windowBounds = new air.Rectangle(200,250,300,400);
newHTMLLoader = air.HTMLLoader.createRootWindow(true, options, true, windowBounds);
newHTMLLoader.load(new air.URLRequest("xmpl.html"));
注意:
新しいウィンドウによって読み込まれたコンテンツがアプリケーションセキュリティサンドボックスの外部にある場合は、ウィンドウオブジェクトには AIR プロパティの
runtime
、
nativeWindow
、または
htmlLoader
はありません。
透明ウィンドウを作成する場合は、そのウィンドウに読み込まれた HTML に埋め込まれている SWF コンテンツは、常に表示されるとは限りません。SWF ファイルを参照するために使用されるオブジェクトまたは埋め込みタグの
wmode
パラメーターを、
opaque
または
transparent
のどちらかに設定する必要があります。
wmode
のデフォルト値は
window
なので、デフォルトでは、SWF コンテンツは透明ウィンドウに表示されません。どの
wmode
値が設定されていようと、PDF コンテンツを透明ウィンドウに表示することはできません(AIR 1.5.2 より前のバージョンでは、SWF コンテンツも透明ウィンドウに表示することはできませんでした)。
createRootWindow()
メソッドで作成したウィンドウは、それを開いたウィンドウから独立したままになります。JavaScript Window オブジェクトの
parent
プロパティと
opener
プロパティは、
null
です。新しいウィンドウを開いたウィンドウは、
createRootWindow()
関数から返る HTMLLoader の参照を使用して、新しいウィンドウの Window オブジェクトにアクセスできます。前記の例のコンテキストでは、ステートメント
newHTMLLoader.window
は作成されたウィンドウの JavaScript Window オブジェクトを参照します。
注意:
createRootWindow()
関数は、JavaScript と ActionScript のどちらからでも呼び出すことができます。