2008/11/11 | 20:57 pm

子シーンでの処理を追加

-
http://www.brooklyn.jp/progression/
-

が今や、只の検証用ページになりつつある。。。
一応、子シーンでの処理を追加しました。
といっても、画像が読み込まれるだけのなーんにもオモロくない感じです。

子シーンとして使っている ChildSceneObject.as がこんな風になりました。


public var bgContainer:CastSprite;

private var imgLoader:CastImageLoader;
private var scene:String;

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

protected override function _onLoad():void {

	// 実行したいコマンドを登録します。
	var xml:XMLList = new XMLList(this.sceneInfo.data);
	// 現在いるシーンの名前を取得して登録
	scene = String(xml).toLowerCase();

	// 今は、背景の画像を読み込んだ後に CastSprite に AddChild しているので、それを参照
	bgContainer = new CastSprite();
	bgContainer = progression.container.getInstanceById("bgContainer") as CastSprite;

	imgLoader = new CastImageLoader();
	imgLoader.alpha = 0;
	imgLoader.addEventListener(CastEvent.CAST_LOAD_COMPLETE, loadComplete);

	// シーンの名前に該当する画像を読み込む
	addCommand(
		function():void { imgLoader.load(new URLRequest("contents/images/"+scene+".jpg")) }
	);
}

public function loadComplete( e:CastEvent ):void {

	imgLoader.removeEventListener(CastEvent.CAST_LOAD_COMPLETE, loadComplete);

	var slist:SerialList = new SerialList();
	slist.addCommand(
		new AddChild( bgContainer, imgLoader ),
		new DoTweener( imgLoader, {alpha:1, time:3, transition:"easeOutQuart"} )
	);
	slist.execute();

};

// 移動時に画像を消す
protected override function _onUnload():void {
	// 実行したいコマンドを登録します。
	addCommand (
		new DoTweener( imgLoader, {alpha:0, time:2, transition:"easeOutQuart"} ),
		new RemoveChild( bgContainer, imgLoader )
	);
}

画像を消すのは、現状は _onUnload() で処理しているけれど、 _onGoto() とどっちの方がいいのやら。
でも、これは子シーンで下階層に何も無い場合は、確実に _onUnload() の対象になるはずなので、
とりあえずは、これでいいかな。

そう言えば、前回の投稿で作ったボタンのままなのだけれど、なぜか遷移中に機能が kill されていない。。。。
おかしい、 progression のサンプルを初めて触ったときは自動で出来てたのに。
autoLock を false にした記憶はないので、どっかで間違ってる可能性大ですね。

POSTED

jam

[...] GRAM | グラム / 子シーンでの処理を追加 [...]





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