セキュリティドメインに読み込まれた SWF ファイルからの埋め込みコンテンツのロード
Flash Player 9 以降、Adobe AIR 1.0 以降
SWF ファイルをロードするとき、ファイルをロードするために使用する Loader オブジェクトの
load()
メソッドの
context
パラメーターを設定できます。このパラメーターは、LoaderContext オブジェクトを取得します。 この LoaderContext オブジェクトの
securityDomain
プロパティを
Security.currentDomain
に設定すると、Flash Player はロードされた SWF ファイルのサーバー上に URL ポリシーファイルがあるかどうかをチェックします。ポリシーファイルが存在し、そのファイルでロードする側の SWF ファイルのドメインへのアクセスが許可されている場合、SWF ファイルを読み込んだメディアとしてロードできます。この方法により、ロードする側のファイルは、SWF ファイルのライブラリにあるオブジェクトにアクセスできるようになります。
SWF ファイルから別のセキュリティサンドボックスにあるロードされた SWF ファイルのクラスにアクセスするもう 1 つの方法は、ロードされた SWF ファイルで
Security.allowDomain()
メソッドを呼び出し、呼び出す側の SWF ファイルのドメインへのアクセスを許可することです。
Security.allowDomain()
メソッドの呼び出しを、ロードされた SWF ファイルのメインクラスのコンストラクターメソッドに追加し、その後、ロードする側の SWF ファイルで、Loader オブジェクトの
contentLoaderInfo
プロパティによって送出された
init
イベントに応答するイベントリスナーを追加することができます。このイベントが送出される時点で、ロードされた SWF ファイルはコンストラクターメソッド内の
Security.allowDomain()
メソッドの呼び出しを完了しており、ロードされた SWF ファイル内のクラスは、ロードする側の SWF ファイルから使用可能です。ロードする側の SWF ファイルは、
Loader.contentLoaderInfo.applicationDomain.getDefinition()
または Loader.contentLoaderInfo.applicationDomain.getQualifiedDefinitionNames()(Flash Player 11.3 以降および AIR 3.3 以降)を呼び出すことにより、ロードされた SWF ファイルからクラスを取得できます。
|
|
|