2012-04-05 52 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> 
相關問題