如何在actionscript3中为类变量使用SWF高度?

时间:2011-09-18 00:34:47

标签: actionscript-3 actionscript flash height class-variables

我想在[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, 编译错误不会发生 但我不想在2个地方写相同的号码
有没有办法避免在2个地方写相同的号码?

2 个答案:

答案 0 :(得分: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;
        }
    }
}

答案 1 :(得分:-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;
        }
    }
}