2012-04-05 51 views
2

我们有一个已经在Flash和as3中构建的项目。这是一个我们想要完全自定义的视频播放器。我们有不同的图像和颜色方案,我们希望能够快速改变。现在我们有配置常量,我们打开和关闭不同的方案。在代码中有大量不同的地方,图像等被改变。flash配置常量的替代选择是什么?

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

基本上,我们可以采取当前的Flash项目(可能是flex?),并使其更快定制的任何建议。

回答

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> 
相关问题