Home > Flash > Progression4 の SceneEvent.SCENE_QUERY_CHANGE イベントを使ってみる

Progression4 の SceneEvent.SCENE_QUERY_CHANGE イベントを使ってみる

Progression4で SceneEvent.SCENE_QUERY_CHANGE を使ってみた。
以下サンプル。

// atSceneInit
protected override function atSceneInit():void
{
	manager.current.sceneInfo.addEventListener( SceneEvent.SCENE_QUERY_CHANGE, onSceneQueryEvent );
 
	addCommand(
		”atSceneInit”,
		new Goto(new SceneId("/index", { v : 1 })),
		1,
		new Goto(new SceneId("/index", { v : 2 })),
		1,
		new Goto(new SceneId("/index/hoge"))
	);
}
 
// atSceneGoto
protected override function atSceneGoto():void {
	manager.current.sceneInfo.removeEventListener( SceneEvent.SCENE_QUERY_CHANGE, onSceneQueryEvent );
	addCommand(
		”atSceneGoto”
	);
}
 
// onSceneQueryEvent
private function onSceneQueryEvent ( e:SceneEvent ):void
{
	trace("onSceneQueryEvent : " + manager.current.sceneInfo.query.v);
}

これを実行して、期待してた動作は

trace: atSceneInit
onSceneQueryEvent : 1
onSceneQueryEvent : 2
trace: atSceneGoto

だったのですが、実際は

trace: atSceneInit
onSceneQueryEvent : 1
onSceneQueryEvent : 2
onSceneQueryEvent : undefined
trace: atSceneGoto

atSceneGoto で removeEventListener される前に、なぜか3度目のonSceneQueryEvent が呼び出される。
う〜む。3度目は余計なのでとりあえず onSceneQueryEvent を下記に書き換えて利用してる。

private function onSceneQueryEvent ( e:SceneEvent ):void
{
	if(manager.current.sceneInfo.query.v != undefined) {
		trace("onSceneQueryEvent : " + manager.current.sceneInfo.query.v);
	}
}

どうやら、sceneInfo.query の値って別Sceneへの移動時に破棄されているみたい。
それで、破棄するときにも SceneEvent.SCENE_QUERY_CHANGE イベントが発行されてるのかな・・??

破棄されているので子シーンから親シーンの query は参照できない。

// 子シーンで、これで参照できると思ってハマった・・・orz
trace(manager.current.parent.sceneInfo.query.v);
// 結果 undefined

子シーンから親シーンのsceneInfo.query 値を利用するならパブリックな変数に代入しておかないとダメですね。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.atama-switch.net/wp-trackback.php?p=125
Listed below are links to weblogs that reference
Progression4 の SceneEvent.SCENE_QUERY_CHANGE イベントを使ってみる from BLOG atama-switch

Home > Flash > Progression4 の SceneEvent.SCENE_QUERY_CHANGE イベントを使ってみる

Search
Feeds
Meta
Link
写真素材 ストックフォトの定額制ペイレスイメージズ

Return to page top