Progression on Flex でdynamicなparameterを持ったScene

探したけど情報がなかったので自作。

package jp.archilogic {
    import jp.progression.events.SceneEvent;
    import jp.progression.scenes.SceneObject;

    public class DynamicScene extends SceneObject {
        public function DynamicScene( name : String = null , initObject : Object = null ) {
            super( name , initObject );
        }

        protected var param : String;

        private var child : Scene;

        override protected function _onLoad() : void {
            var paths : Array = progression.destinedSceneId.path.split( '/' );
            param = paths[ paths.length - 1 ];

            child = new Scene( param );
            addScene( child );

            load();
        }

        override protected function _onUnload() : void {
            unload();

            removeScene( child );
        }

        protected function load() : void {
        }

        protected function unload() : void {
        }
    }
}

これを継承したScene(例えば/root/some)を定義して、/root/some/foobarとかにGotoすると、SomeSceneでoverrideしたload()でparamにfoobarが入っているので、それをcontrollerで処理したりな感じでとりあえず動きました。