セキュリティドメインに読み込まれた 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 ファイルからクラスを取得できます。