actionscript-3 - Flash 配置常量的替代方案是什么?

标签 actionscript-3 flash config

我们有一个用 Flash 和 as3 构建的项目。这是一个我们想要完全定制的视频播放器。我们有不同的图像和配色方案,我们希望能够快速更改。现在我们有针对不同方案打开和关闭的配置常量。并且在代码中存在大量不同的地方,其中图像等被更改。

当我们创建新的配色方案或其他任何内容时,我们需要创建一个新的配置。然后我们必须检查所有代码并将其正确放入。

基本上,关于我们如何采用当前的 Flash 项目(也许是 Flex?)并使其更快地可定制的任何建议。

最佳答案

将所有可配置参数移至 XML 定义。

为每个自定义创建多个 XML 文档。

在代码中,为可配置参数建立默认值,然后加载 XML 和 XML 文档的引用值以覆盖这些默认值。

对于生产构建,如果加载外部资源是部署问题,则可以将 XML 嵌入到程序集中。

通过加载不同的配置 XML 文档,您可以在运行时更改定义,并且通过使用动态配置模型,您可以起草主题编辑器来实时查看更改。

配置模型.as

package
{
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;

    public class ConfigurationModel
    {

        /** ======== configuration ======== */

        public static var color:uint = 0xff00ff;

        public static var fontName:String = "Arial";


        /** ======== serialization ======== */

        public static function loadConfiguration(url:String):void
        {
            var loader:URLLoader = new URLLoader(new URLRequest(url));
            loader.addEventListener(Event.COMPLETE, completeHandler);
        }

        protected static function completeHandler(event:Event):void
        {
            var xml:XML = new XML(event.target.data);

            if (xml.color)
                color = xml.color;

            if (xml.fontName)
                fontName = xml.fontName;
        }

    }
}

示例配置:AcmeClientConfiguration.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <color>0xff0000</color>
    <fontName>Calibri</fontName>
</configuration>

关于actionscript-3 - Flash 配置常量的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034021/

相关文章:

iphone - 闪光灯+手机摄像头

flash - HTML5 音频标签 flash 回退

html - Flash HTML 图片链接 AS3

scala - com.typesafe.config.ConfigException$ 缺少 : No configuration setting found for key 'play'

perl - Perl 中的配置文件处理

actionscript-3 - 如何在单击按钮时更改 Sprite 颜色 AS3

actionscript-3 - AS3 围绕其中心点旋转对象

c++ - GetPrivateProfileStringA() 切断我的配置值编号

apache-flex - 是否可以在 flex/as3 中访问父类(super class)的父类(super class)?

actionscript-3 - Air-As3 套接字关闭套接字停止发送信息