Модуль Flex для поддержки 2 клиентов - PullRequest
0 голосов
/ 18 января 2012

В настоящее время у меня есть задача, чтобы иметь гибкий модуль, чтобы вести себя по-разному для 2 клиентов Некоторая разница заключается в текстовой разнице и (вероятно) разнице в визуализации. Однако первый клиент прекратит обслуживание в ближайшее время (в течение 2-3 месяцев)

Итак, я знаю, что у меня есть 2 варианта:

  • Интернационализация, но оба этих клиента используют английский языковой стандарт (и может заставить меня создать новый языковой стандарт), например "en_Client2". После того, как 1-й клиент прервет службу, удалите новую локаль. (второй пользователь использует локаль по умолчанию en_US)

  • Состояние, но это приведет к тому, что мой код будет разбросан по if и else.

Есть идеи, что лучше? Или есть другой вариант, который я пропустил?

1 Ответ

0 голосов
/ 18 января 2012

Ответ на этот вопрос не абсолютен, это мнение. Вот что я бы сделал, настроив xml-файл с текстом, который нужно изменить, и именами классов, которые будут использоваться для рендереров, например. Затем используйте URLLoader или HTTPService для загрузки XML-файла во время выполнения. Используйте что-то вроде ниже, чтобы разрешить класс на основе загруженного XML, затем динамически назначьте класс как itemRenderer после считывания данных из файла XML. Вы можете сохранить все это в модели, которую можно привязать к свойствам в представлении, чтобы упростить его.

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

Затем вы просто создаете два XML-файла, по одному для каждого клиента, и все готово.

Обратите внимание, что вы захотите включить ссылку на любые классы, которые будут загружены с помощью getDefinitionByName, где-то в коде, иначе они не будут включены в swf и не смогут разрешать их во время выполнения , Подойдет любая ссылка, например:

MyClass;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...