flash配置常量的替代方法是什么?

时间:2012-04-05 18:32:59

标签: actionscript-3 flash config

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

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

基本上有关于我们如何处理当前flash项目(可能是flex?)的任何建议,并使其可以更快地进行自定义。

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

ConfigurationModel.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>