イナヅマTVログ

Progression4事始め、LoadSWFでロードしたファイルのプロパティ

| 1件のコメント

Progression4って便利だなぁー。
と言ってもまだコマンドを使ってるだけだけど。
ガンガン使うのはこれから。

LoadSWFで呼び込んだswfファイルのプロパティにアクセスするのにちょっとしどろもどろしたのでメモっとく。

ロードするファイルexample.swfに関数bowがあります。

import jp.progression.commands.lists.SerialList;
import jp.progression.commands.net.LoadSWF;
 
import flash.net.URLRequest;
import flash.display.Loader;
 
new SerialList(
	null
	, new LoadSWF(new URLRequest("example.swf"))
	, function ():void {
		var loader:Loader = Loader(this.latestData);
		var loaded:Object = loader.content;
		loaded.bow();
	}
).execute();

Loaderで型指定(Cast)するのがポイントだった。
loader.contentの戻り値をObject型で受取らないといけなかった。
なんとなく想像できるけど、これはFlashの問題(仕様、性格、体質:うまい言い方がみつからない)だよなぁ。

ロードしたファイルのライブラリ・ファイル(クラス)を使うのはもうちょっとややこしかった。
ロードするファイルexample.swfにクラスSomeClassがあります。

import jp.progression.commands.lists.SerialList;
import jp.progression.commands.net.LoadSWF;
 
import flash.net.URLRequest;
import flash.display.Loader;
import flash.system.ApplicationDomain;
 
new SerialList(
	null
	, new LoadSWF(new URLRequest("example.swf"))
	, function ():void {
		var loader:Loader = Loader(this.latestData);
		var domain:ApplicationDomain = loaded.contentLoaderInfo.applicationDomain;
		var class:Class = domain.getDefinition( "SomeClass" ) as Class;
		var instance:* = new class();
	}
).execute();

SerialList内のthis参照はSerialListになってるんだね。
これもうっかりするとハマりそう。

1件のコメント

  1. ピンバック: links for 2010-11-12 》 RuputerFan

コメントを残す

必須欄は * がついています


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください