2012-01-18 7 views
0

現在、フレックスモジュールを2つのクライアントと異なる動作にする必要があります。 いくつかの違いは、テキストの違いと(おそらく)レンダラの違いです。2つのクライアントをサポートするFlexモジュール

  • 国際化が、この2クライアントの両方の英語ロケールを使用している。しかし、最初のクライアントは、だから私は、私はこの2つのオプションを持っていることを承知している(2-3カ月以内)すぐに

    をサービスを終了します(そして私に新しいロケールを作成させるかもしれません)、例えば "en_Client2"。 1番目のクライアントがサービスを終了したら、新しいロケールを削除します。 (2番目のユーザーはen_USのデフォルトロケールを使用します)

  • 状態ですが、これによりifとelseでコードが散らばります。

良い方法はありますか?それとも私が逃した別のオプションがありますか?

答えて

0

この質問に対する回答は絶対的な意見ではありません。ここでは、私は何をやろうとしていますが、変更する必要のあるテキストとレンダラーに使用するクラスの名前をXMLファイルに設定します。次に、URLLoaderまたはHTTPServiceを使用して、実行時にxmlファイルをロードします。ロードされたXMLに基づいてクラスを解決するには、以下のようなものを使用し、XMLファイルからデータを読み込んだ後にクラスをitemRendererとして動的に割り当てます。すべてをモデルに保存して、ビュー内のプロパティにバインドして簡単にできます。

var classReference:Class = getDefinitionByName(xmlResults.itemRendererNumberOne) as Class; 
myList.itemRenderer = classReference; 

次に、クライアントごとに2つのxmlファイルを作成するだけでよいのです。

コード内にgetDefinitionByNameを使用してロードされるクラスへの参照を含めることをお勧めします。そうでない場合、swfには含まれず、実行時に解決できません。時間。しかし、参照の任意の並べ替えを行うでしょう:

MyClass; 
関連する問題