2012-01-18 178 views
0

目前我有一個任務必須有一個Flex模塊,以2個客戶端的行爲不同 有些區別是文本差異和(可能)渲染器的區別。然而,第一個客戶端將很快終止服務(2-3個月內)Flex模塊支持2個客戶端

所以我知道,我有這樣的2種選擇:

  • 國際化,但是這2客戶端使用的是英語語言環境都(並可能迫使我創建一個新的語言環境),例如「en_Client2」。第一個客戶端終止服務後,刪除新的區域設置。 (第二個用戶使用的默認語言環境是en_US)

  • 狀態,但是這會將我的代碼與if和else分開。

任何想法哪個更好?或者還有另一個我錯過的選擇?

回答

0

這個問題的答案並不是絕對的,這是一個意見。以下是我要做的事情,例如,設置一個xml文件,其中包含需要更改的文本以及用於渲染器的類的名稱。然後使用URLLoader或HTTPService在運行時加載xml文件。使用類似下面的內容來根據加載的XML來解析類,然後在從XML文件讀入數據之後動態地將該類指定爲itemRenderer。您可以將其全部存儲在可綁定到視圖內的屬性的模型中,以使其更容易。

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

然後,您只需爲每個客戶端創建一個xml文件,然後您就可以輕鬆完成任務。

請注意,您希望包含對將在代碼中使用getDefinitionByName加載的任何類的引用,否則它們將不會包含在swf中,並且無法在運行時解析它們。時間。任何類型的參考都可以做到,例如:

MyClass;