[AS]progression4RC departedSceneIdやdestinedSceneIdをif文とかで判定できないってときはここに注意
progressionを使ううえでの便利プロパティ。
departedSceneId
destinedSceneId
以前のエントリでも書いてるように、出発シーンと、到着シーンを取得できます。
ただし↑はprogression3の書き方。
progression4では、progressionインスタンスは無くなり、managerが持ってるプロパティ。
manager.destinedSceneId; manager.departedSceneId;
これを使って、if文の処理をしたいときちょっとはまったのでメモ。
destinedSceneIdとかdepartedSceneIdをtraceすると、
/indexとか、/index/aboutとか、sceneIdを出力してくれます。
なので、戻り値のデータ型はString?と思いきや、実は違います。
trace(manager.departedSceneId)//出力(例):/index trace(typeof manager.departedSceneId)//出力:object(stringではない)
なので、if文で判定するときは、↓だと上手く判定されません
//manager.departedSceneId == manager.destinedSceneIdは中身がなんであろうと常にtrueとなる if(manager.departedSceneId == manager.destinedSceneId){ //処理 }
traceしたときに見えるSceneId名で判定させる場合は.toString()をつければOK
// if(manager.departedSceneId.toString() == manager.destinedSceneId.toString()){ //処理 }
※2010/04/17/16:30追記
コメントにてequals()メソッドというものを教えて頂きました。
こっちの方が簡単ですね。
if(manager.departedSceneId.equals(manager.destinedSceneId)){ //処理 }
※4のBetaまではtoStringなしでも判定してくれてたような気がするけど、RCからは無いとダメみたい。
Tweet
2 Comments
こんにちは。
SceneIdを比較するときはequalsメソッドを使うと正確かつスマートだと思います。
if(manager.departedSceneId.equals(manager.destinedSceneId)){
//処理
}
うはー、こんな便利メソッドあったんですね!
情報ありがとうございまっす!