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になってるんだね。
これもうっかりするとハマりそう。
ピンバック: links for 2010-11-12 》 RuputerFan