[AS]progression4 managerインスタンスの参照でちょっとはまった
progression4からは、Progressionクラスを参照できるプロパティがmanagerになりました。
(3はprogressionだった)
SceneObjectとかCastSpriteとかが持ってるプロパティなので簡単に参照できます。
んが、ちょっとはまったのでmemo。
SceneObject(を継承したカスタムクラス)の場合、そのSceneObjectがaddSceneされてない状態では、managerはnullとなる。
つまりSceneObjectのコンストラクタに
trace(manager)
としてもnullが返ってくるだけ。
addSceneされたあとなら、Progressionインスタンスを返してくれる。
CastSprite(を継承したカスタムクラス)の場合は、自身の親が普通のspriteとかMovieClipの状態では参照できない。
親はCastSpriteとかCastMovieClipとかprogression独自のDisplayObjectContainerでないとだめ。
[2011.10.19追記]
とうぜんstageに追加した場合もmanagerはnullとなる
//nullの例 var sp:Sprite = new Sprite(); container.addChild(sp) //containerはprogressionの持ってるプロパティ。(progression的なstage) var csp:CastSprite = new CastSprite(); sp.addChild(csp); trace(csp.manager);//出力:null //nullじゃない例 var sp:CastSprite = new CastSprite(); container.addChild(sp) //containerはprogressionの持ってるプロパティ。(progression的なstage) var csp:CastSprite = new CastSprite(); sp.addChild(csp); trace(csp.manager);//出力:[Progression id="index"]
というようなことが上手くまとめられてる記事もありました。
ありがたいことです。
参考:Fountain:Flash初心者がProgression 4 publicBeta1.1を始めたメモ
Tweet