0

クラス変数の [SWF height=200] で高さを使いたいです。

次のコードを試しましたが、コンパイル エラーが発生します。

const SWF_HEIGHT:int = 200;

package {
    import flash.display.*;

    [SWF(backgroundColor=0xffffff, width=400, height=SWF_HEIGHT)]

    public class Main extends Sprite {
        public static const Y:int = SWF_HEIGHT / 2;
    }
}

const SWF_HEIGHT の代わりに 200 を使用すると、コンパイル エラーは発生しません。
でも同じ数字を2箇所書きたくない。

2ヶ所に同じ数字を書かないようにする方法はありますか?

4

2 に答える 2

1

-- 回答は編集されました --

逆の方法で行う必要があります。

package {
    import flash.display.*;

    [SWF(backgroundColor=0xffffff, width=400, height=200)]

    public class Main extends Sprite {
        private static var _swfHeight : int = -1;
        public static function get swfHeight():int{
            return _swfHeight;
        }
        public function Main():void{
            _loader = this.loaderInfo;
            _loader.addEventListener(Event.COMPLETE, loaded );
        }
        private var _loader : LoaderInfo;
        private function loaded( event : Event ) : void{
            _swfHeight = _loader.height;
        }
    }
}
于 2011-09-18T11:15:35.543 に答える
-1

なぜメタタグで高さを設定したいのですか? コンストラクターでそれを行うことができます:

const SWF_HEIGHT:int = 200;

package {
    import flash.display.*;

    [SWF(backgroundColor=0xffffff, width=400)]

    public class Main extends Sprite {
        public static const Y:int = SWF_HEIGHT / 2;

        public function Main():void {
            height = SWF_HEIGHT;
        }
    }
}
于 2011-09-18T02:19:25.430 に答える