Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > 表示のプログラミング > 表示コンテンツの動的ロード > ロードするコンテンツの指定 | |||
Loader クラスの load() または loadBytes() メソッドを介して Flash Player に外部ファイルをロードする場合、オプションで context パラメータを指定できます。このパラメータは LoaderContext オブジェクトです。
LoaderContext クラスには、ロードされたコンテンツの使用方法のコンテキストを定義できる次の 3 つのプロパティが含まれています。
checkPolicyFile: このプロパティは、SWF ファイルではなくイメージファイルをロードする場合にのみ使用します。このプロパティを true に設定した場合、Loader は元のサーバーでクロスドメインポリシーファイルをチェックします (Web サイトの管理 (クロスドメインポリシーファイル)を参照)。これは、Loader オブジェクトを含む SWF ファイルのドメイン以外のドメインにあるコンテンツにのみ必要です。サーバーから Loader ドメインにアクセス許可が与えられている場合、Loader ドメイン内の SWF ファイルの ActionScript はロードされたイメージ内のデータにアクセスできます。つまり、BitmapData.draw() コマンドを使用して、ロードされたイメージ内のデータにアクセスできます。 Loader オブジェクトのドメイン以外の他のドメインにある SWF ファイルは、Security.allowDomain() を呼び出して特定のドメインを許可できます。
securityDomain: このプロパティは、イメージではなく SWF ファイルをロードする場合にのみ使用します。Loader オブジェクトを含むファイルのドメイン以外のドメインの SWF ファイルに対してこのプロパティを指定します。このオプションを指定すると、Flash Player はクロスドメインポリシーファイルが存在するかどうかをチェックします。ファイルが存在する場合は、クロスドメインポリシーファイルで許可されているドメインの SWF ファイルはロードされた SWF コンテンツをクロススクリプトできます。このパラメータとして flash.system.SecurityDomain.currentDomain を指定できます。 applicationDomain: ActionScript 1.0 や 2.0 で記述されたイメージまたは SWF ファイルではなく、ActionScript 3.0 で記述された SWF ファイルをロードする場合にのみ、このプロパティを使用します。ファイルをロードするとき、applicationDomain パラメータを flash.system.ApplicationDomain.currentDomain に設定することで、ファイルが Loader オブジェクトと同じアプリケーションドメインに含まれるように指定できます。ロードされた SWF ファイルを同じアプリケーションドメインに置くと、そのクラスに直接アクセスできます。これは、関連付けられたクラス名を使用してアクセスできる埋め込みメディアを含む SWF ファイルをロードする場合に便利です。詳細については、ApplicationDomain クラスの使用を参照してください。次に示す例では、別のドメインからビットマップをロードするとき、クロスドメインポリシーファイルをチェックします。
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/photo11.jpg");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);
次に示す例では、別のドメインから SWF をロードするときに、クロスドメインポリシーファイルをチェックし、このファイルを Loader オブジェクトと同じセキュリティサンドボックス内に配置します。また、このコードは、ロードされた SWF ファイルのクラスを Loader オブジェクトと同じアプリケーションドメインに追加します。
var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/library.swf");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);
詳細については、『ActionScript 3.0 コンポーネントリファレンスガイド』の LoaderContext クラスを参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000173.html