1. TOP
  2. Web flash / ActionScript
  3. [AS3] Loaderで読み込んだswf内の変数やメソッドにアクセスする

[AS3] Loaderで読み込んだswf内の変数やメソッドにアクセスする

カテゴリ:
Web
flash / ActionScript
| トラックバック(0)
投稿者:yo yo

(Loader.content as Object).変数で外部swfの変数を取得

ActionScript3で外部swfをLoaderクラスを使って読み込んだ時、外部swf内の変数やメソッドを取得したい時用のメモ

読み込み側swf

// Loaderオブジェクト
var ldr:Loader = new Loader();
// 外部swf読み込み
ldr.load(new URLRequest("外部swfパス"));
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{

    // 外部swfのメインタイムライン(DisplayObject型)
    ldr.content;
    
    // 変数取得 出力:あいうえお(DisplayObject型であるldr.contentをObject型やMovieClip型にキャストしなければエラー起きる)
    trace((ldr.content as MovieClip).hoge);

    // タイムラインの制御
    (ldr.content as MovieClip).stop();
});

外部swf(読み込まれる側)

// 変数
var hoge:String = "あいうえお";

ldr.contentがDisplayObject型のままだとエラーが起きる

1119:未定義である可能性が高いプロパティ hoge に静的型 flash.display:DisplayObject の参照を使用してアクセスしています。

というエラーがおきます。なのでLoaderオブジェクトのプロパティ ldr.contentはObject型やMovieClip型、Splite型にキャストしなければなりません。as演算子で型変換する事によりエラーを回避する事ができます。

このキャストの方法が合っているのか間違っているのか、私の拙いスキルでは解りませんが、きちんと動いているので良しとしてください。

content プロパティ
content:DisplayObject [読み取り専用]
言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9
 
load() メソッドまたは loadBytes() メソッドを使用して読み込まれた SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルのルート表示オブジェクトが含まれます。
ActionScript 3.0 言語およびコンポーネントリファレンス Loader > contentプロパティ

参考

« PHPでチェックボックスやセレクトボックス値を効率よく受け取る | ホーム | [AS3] ローディング画面用 読み込んだbyte数を表示するActionScript »

トラックバック

http://pulltab.info/mt/mt-tb.cgi/61
ページの先頭に戻る