外部の SWF ファイルのロード

ActionScript 3.0 では、Loader クラスを使用して SWF ファイルをロードします。外部 SWF ファイルをロードするには、ActionScript で次の 4 つのタスクを実行する必要があります。

  1. ファイルの url により、新規 URLRequest オブジェクトを作成します。
  2. 新規 Loader オブジェクトを作成します。
  3. URLRequest インスタンスをパラメータとして渡し、Loader オブジェクトの load() メソッドを呼び出します。
  4. Flash ドキュメントのメインタイムラインなどの表示オブジェクトコンテナで addChild() メソッドを呼び出し、表示リストに Loader インスタンスを追加します。

最終的に、コードは次のようになります。

var request:URLRequest = new URLRequest("http://www.[yourdomain].com/externalSwf.swf");
var loader:Loader = new Loader()
loader.load(request);
addChild(loader);

これと同じコードを使用し、JPEG、GIF、PNG イメージなどの外部イメージファイルをロードすることができます。その際、SWF ファイルの url ではなく、イメージファイルの url を指定します。イメージファイルとは異なり、SWF ファイルには ActionScript を含めることができます。このため、SWF ファイルをロードするプロセスがイメージのロードと同じでも、ActionScript を使用して外部の SWF ファイルと何らかの通信を行う場合は、外部の SWF ファイルをロードするときに、ロードする SWF ファイルとロードされる SWF ファイルの両方が同じセキュリティサンドボックスに属している必要があります。また、ロードされる SWF ファイル内のクラスと同じ名前空間を使用するクラスが外部の SWF ファイルに含まれる場合には、名前空間の競合を避けるために、ロードされる SWF ファイル用に新しいアプリケーションドメインを作成する必要があります。セキュリティとアプリケーションドメインの重要事項については、ApplicationDomain クラスの使用およびSWF ファイルとイメージのロードを参照してください。

正常にロードされた外部の SWF ファイルには、Loader.content プロパティを使用してアクセスできます。外部の SWF ファイルを ActionScript 3.0 用としてパブリッシュすると、拡張するクラスに基づいて、ムービークリップまたはスプライトのいずれかになります。

従来の SWF ファイルをロードする際の注意事項

以前のバージョンの ActionScript を使用して外部 SWF ファイルをパブリッシュする場合には、制約事項に注意する必要があります。AVM2 (ActionScript Virtual Machine 2) で実行される ActionScript 3.0 の SWF ファイルと異なり、ActionScript 1.0 または 2.0 用としてパブリッシュされる SWF ファイルは AVM1 (ActionScript Virtual Machine 1) で実行されます。

AVM1 SWF ファイルが正常にロードされると、ロードされたオブジェクト (Loader.content プロパティ) は、AVM1Movie オブジェクトになります。AVM1Movie インスタンスは、MovieClip インスタンスと同じではありません。これは表示オブジェクトで、ムービークリップとは異なり、タイムラインに関連するメソッドまたはプロパティを含んでいません。親 AVM2 SWF ファイルは、ロードされた AVM1Movie オブジェクトのプロパティ、メソッド、またはオブジェクトにアクセスすることはできません。

AVM2 SWF ファイルによってロードされた AVM1 SWF ファイルには、次の制約があります。詳細については、『ActionScript 3.0 コンポーネントリファレンスガイド』の AVM1Movie クラスリストを参照してください。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000216.html