2008/11/27 | 19:40 pm

loadChild() で外部swf をロード

するときの場合です。

基本的には AS3 の Loader() の処理と一緒っぽいです。
多分です。

例えば、子シーンで外部swf をロードする場合 : SceneObject を extends したモノ

private var sp:Sprite;
private var com:LoadChild;
private var isLoading:Boolean = false;
private var childMovieClip:MovieClip;

public function ChildScene( name:String = null, initObject:Object = null ) {
 	super( name, initObject );

	// シーン名 | タイトルの設定
	name = "childscene";
	title = "HERE IS CHILD SCENE";
}

protected override function _onLoad():void {
	// 実行したいコマンドを登録します。
	sp = new Sprite();

	var req:URLRequest = new URLRequest( "contents/swf/child.swf" );
	com = new LoadChild( sp, req );

	com.loader.onCastLoadStart = function():void {
		isLoading = true;
		this.addCommand(
			// ローディングの開始アニメーションとか
		)
	};
	com.loader.onCastLoadComplete = function():void {
		isLoading = false;
		childMovieClip = this.content;	// これで、子swf にアクセスさせて、その function を読んだり出来るようにしておきます。
		this.addCommand(
			new AddChild( progression.container, sp ),
			// ローディングの終了アニメーションとか
		);
	};
	com.addEventListener( ProgressEvent.PROGRESS, onProgress );
	// com.loader.contentLoaderInfo.addEventListener でも一緒です。
	com.execute();
}

private function onProgress( e:ProgressEvent ):void {
	var loaded:Number = com.loader.contentLoaderInfo.bytesLoaded;
	var total:Number = com.loader.contentLoaderInfo.bytesTotal;
	var percent:Number = (loaded / total);
	trace( "loading = " + percent );	// ローディング状況を trace() する
};

あとは、 childMovieClip に命令するとか、child.swf のタイムラインにアニメーション作っておくとかで
大丈夫ではないでしょうか。
もっといい方法がある気がしてならない。

そして、殴り書きのメモみたいに簡単でスイマセン。
落ち着いたら、ちゃんと。。。出来たらいいな。。。

COMMENT

POSTED

jam





JUN NAKAJIMA
Tokyo, Japan.
member of Onawatobi.
contact@brooklyn.jp