2010年1月14日木曜日

 

【Progression】SceneObject、ページなどMyCastSpriteインスタンスからstageを参照する

Progressionでいろいろつまづいた事 - selflash.jp
SceneObject内ではstageの参照はできない。
CastObject内でもAdded以降でしかstageの参照はできない。

中央に配置したい時に困る。
引数として渡せば使える。
自分はFlashDevelopで以下のテンプレートを使っているのでメソッド名など違いに注意。

FlashDevelopの使い方 (16)Flash無しでProgression 4を使用するためのプロジェクトテンプレート - 独学ActionScript
/* IndexScene.as */
    public class IndexScene extends SceneObject 
    {
        public var page:IndexPage;

        /**
         * 新しい IndexScene インスタンスを作成します。
         */
        public function IndexScene() 
        {
            // シーンタイトルを設定します。
            title = "Index - Progression";
            // ContentsScene を作成します。
            var contents:ContentsScene = new ContentsScene(stage);
            contents.name = "contents";
            addScene( contents );
        }}
/* ContentsScene.as */
    public class ContentsScene extends SceneObject 
    {
        public var page:ContentsPage;

        public function ContentsScene(stage:Stage, name:String = null, initObject:Object = null ) 
        {

            // シーンタイトルを設定します。
            title = "Contents - Progression";

            page = new ContentsPage(stage);

        }}

MyCastSpriteインスタンスでも。

/* IndexPage.as */
    public class ContentsPage extends CastSprite 
    {
        private var _stage:Stage;

        public function ContentsPage(stage:Stage, initObject:Object = null ) 
        {
            // 親クラスを初期化します。
            super( initObject );
            _stage = stage;
            var tf:TextField = addChild( new TextField() ) as TextField;
            tf.defaultTextFormat = new TextFormat("Verdana", 18, 0x000000);
            tf.text = "Text";
            tf.autoSize = TextFieldAutoSize.LEFT;
            tf.selectable = false;
            tf.x = ( _stage.stageWidth - tf.width ) / 2;
            tf.y = ( _stage.stageHeight - tf.height ) / 2;
        }
               .…
    }

「Text」と中央に表示される。

_onCastAdded()からなら可能らしい。またはatCastAdded()かな。

実制作でつまづいたとこをQ&A形式でまとめてみた - kanariia.com blog
Q.Castのコンストラクタからステージを参照できない
/* MyCastSpriteインスタンスでstageを参照する */
    …
    protected override function _onCastAdded():void {
        stage.addEventListener( Event.RESIZE, onResizeHandler);
        onResizeHandler(null);
        addCommand(
            // 任意のコマンドを記述してください。
            new Trace(stage.stageWidth);
        );
    }

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google