SWF ファイルをロードする際、ファイルをロードするために使用する Loader オブジェクトの load() メソッドの context パラメータを設定できます。このパラメータは、LoaderContext オブジェクトを取得します。この LoaderContext オブジェクトの securityDomain プロパティを Security.currentDomain に設定すると、Flash Player はロードされた SWF ファイルのサーバー上にクロスドメインポリシーファイルがあるかどうかをチェックします。クロスドメインポリシーファイルが存在し、そのファイルでロードする側の 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() を呼び出すことにより、ロードされた SWF ファイルからクラスを取得できます。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート