すべての設定可能なパラメータを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>