2

Flashとas3で構築されたプロジェクトがあります。それは私たちが完全にカスタマイズしたい種類のビデオプレーヤーです。さまざまな画像や配色を用意しており、これらをすばやく変更できるようにしたいと考えています。現在、さまざまなスキームでオンとオフを切り替える構成定数があります。また、コードには、画像などが変更されるさまざまな場所が大量にあります。

新しい配色などを作成するときは、新しい構成を作成する必要があります。次に、すべてのコードを調べて、正しく配置する必要があります。

基本的に、現在のフラッシュプロジェクト(おそらくフレックス?)を取得して、それをはるかに迅速にカスタマイズできるようにする方法についての提案。

4

1 に答える 1

3

Move all configurable parameters to an XML definition.

Create multiple XML documents for each customization.

In code, establish default values for configurable parameters, then load the XML and reference values of the XML document as overrides to those defaults.

For a production build, XML can be embedded in the assembly if loading an external resource is an issue for deployment.

By loading different configuration XML documents, you could change the definition during runtime, and by using the dynamic configuration model you could draft a theme editor to view changes real time.

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;
        }

    }
}

Example configuration: AcmeClientConfiguration.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <color>0xff0000</color>
    <fontName>Calibri</fontName>
</configuration>
于 2012-04-05T18:47:18.380 に答える