[AS]progression 出発シーン、到着シーンのsceneIdを取得する方法”departedSceneId”,”destinedSceneId”
便利すぎて鼻血がでます。
prgressionで直接URLを入力されたときや、サイトマップなどから通常の遷移とは違うルートからシーンにたどり着いた場合、内部の処理(主に、通過するシーンの_onLoadイベント)を分岐させたいことがありました。
その際に便利なのが、出発シーン、到着シーンを取得できるプロパテイ。
出発シーン:departedSceneId
到着シーン:destinedSceneId
使い方は、SceneObjectを継承したクラスならこんな感じで取得できます。
trace("出発地:"+this.progression.departedSceneId);
trace("ゴール地:" + this.progression.destinedSceneId);
progressionインスタンスのプロパティってことですかね。
CastSpriteとかで取得したい場合は、まずprogressionインスタンスを取得しないとなので、こんな感じで取れました。(もっと簡単に取れそうだけど)
//まずは何かシーンインスタンスを取得しておいて、
var indexScene:IndexScene = IndexScene(getSceneById("indexScene"));
//そのインスタンス経由でprogressionを取得する
trace(indexScene.progression.departedSceneId)
trace(indexScene.progression.destinedSceneId)
ちなみに(一番最初に)URLからアクセスした場合は、departedSceneIdはnullになるみたい。
リロードしたときも、departedSceneIdはnullになってました。
これでいろんな状況からのアクセスの条件分岐ができそう。
※追記、
もっと簡単にprogressionインスタンス取得できました。
//progressionインスタンスを取得
var prog:Progression = getProgressionById("index");
//そのインスタンス経由でprogressionを取得する
trace(prog.departedSceneId)
trace(prog.destinedSceneId)
Tweet