CastSprite(CastMovieClip)の中から出発シーン(departedSceneId)の条件分岐をしてみる
出発シーン(departedSceneId)は、Progressionクラスのプロパティ。
SceneObjectからだと、progression.departedSceneIdでとれる。簡単。
CastSpriteからだと、ProgressionのIDを参照しなくちゃいけない。
ProgressionのIDはデフォルトのままだとindexなので、
getProgressionById("index").departedSceneIdでとれる。
CastSpriteをaddしてるシーンからシーンIDをinitObjectなどでもらっておく。
URL入力などで直接きた場合は、departedSceneIdがnullになって、
containsするとエラーになってしまう。
なので直前で分岐入れておく。
シーンIDは、equalsかcontainsで比較する!==とかじゃダメ!
public class MyCastSprite extends CastSprite { //CastSpriteがaddされたシーンID private var _addedSceneId:SceneId; public function MyCastSprite( initObject:Object = null ) { super( initObject ); //addされたシーンIDを取得 _addedSceneId = initObject.addedSceneId; } protected override function _onCastAdded():void { if (getProgressionById("index").departedSceneId != null) { if (_addedSceneId.contains(getProgressionById("index").departedSceneId)) { //子シーンから来た場合 addCommand( ); } else { //親シーンから来た場合 addCommand( ); } } else { //URLから直接きた場合 addCommand( ); } } }
※090731 12:22 スクリプト修正