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;
    }
}

如果我使用数字 200 而不是 const SWF_HEIGHT,则不会发生编译错误。
但我不想在两个地方写相同的数字。

有没有办法避免在两个地方写相同的数字?

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 回答