如何将SWF高度用于ActionScript3中的类变量?

发布于 2024-12-05 07:02:48 字数 428 浏览 5 评论 0原文

我想将[SWF高度= 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个地方写相同的数字?

I want to use height in [SWF height=200] for class variable.

I tried the following code but it causes compile error.

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

If I use the number, 200 instead of const SWF_HEIGHT,
the compile error doesn't happen.
But I don't want to write the same number on 2 places.

Is there way to avoid writing the same number on 2 places?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

折戟 2024-12-12 07:02:48

-- 答案已编辑 --

您需要以相反的方式进行操作:

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

-- ANSWER HAS BEEN EDITED --

You need to do it the other way around:

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;
        }
    }
}
你不是我要的菜∠ 2024-12-12 07:02:48

为什么要在元标记中设置高度?您可以在构造函数中执行此操作:

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

Why do you want to set the height in the metatag? You could just do it in the constructor:

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;
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文