swfを読み込んで表示
■まず、読み込まれるSWFを作成します。
ChildProc.as
package { import flash.display.*; import flash.text.*; public class ChildProc extends Sprite { private var textField:TextField= new TextField(); public function ChildProc() { textField.text ="test"; addChild(textField); } } }
■ただ、読み込んで表示するだけなら、以下のようなプログラムで表示できます。
Main.as
package { import flash.display.*; import flash.net.*; import flash.text.*; public class Main extends Sprite { private var loader:Loader = new Loader(); public function Main() { addChild(loader); loader.load( new URLRequest("ChildProc.swf")); } } }
■読み込んでいる途中を制御したい場合は、イベントを定義して、制御しましょう
Main01.as
package { import flash.events.*; import flash.display.*; import flash.net.*; import flash.text.*; public class Main01 extends Sprite { private var loader:Loader = new Loader(); public function Main01() { addChild(loader); with( loader.contentLoaderInfo ){ addEventListener( Event.OPEN,loaderInfoOpenFunc); addEventListener( ProgressEvent.PROGRESS, loaderInfoProgressFunc ); addEventListener( Event.INIT,loaderInfoInitFunc); addEventListener( Event.COMPLETE,loaderInfoCompleteFunc ); addEventListener( SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler ); addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler ); } loader.load( new URLRequest("ChildProc.swf")); } //■読み込み開始 private function loaderInfoOpenFunc( event:Event ):void { trace ("Read Start"); } //■読み込み中(読み込み%を表示) private function loaderInfoProgressFunc( evt:ProgressEvent ):void{ var rate:int = Math.floor((evt.bytesLoaded * 100)/evt.bytesTotal); trace ("Read "+rate+"%"); } //■読み込んだコンテンツが初期化される private function loaderInfoInitFunc( event:Event ):void { trace ("Func Init"); } //■読み込み終了 private function loaderInfoCompleteFunc( evt:Event ):void{ trace ("Read End"); } //■セキュリティーエラー private function securityErrorHandler( evt:SecurityErrorEvent ):void{ trace ("Security Error"); } //■読み込みエラー private function ioErrorHandler( evt:IOErrorEvent ):void{ trace ("IO Error"); } } }