Возможно ли использовать разные оболочки в классе на основе некоторых условий?

#apache-flex #actionscript-3 #flex4

#apache-flex #actionscript-3 #flex4

Вопрос:

Мы создаем приложение, которое использует классы оболочек в mxml. Мы планируем создать разные варианты этого приложения для разных пользовательских сегментов, где большая часть функциональности останется одинаковой, но только оболочки различаются в зависимости от пользовательского сегмента.

Мы добавляем оболочки в приложение с помощью следующего синтаксиса:

 <s:BorderContainer id="Banner" height="15%" width="100%" skinClass="mySkins.backgroundSkin"/>
  

Есть ли способ, которым мы можем создать оболочку на основе некоторых условий
то есть, если usersegment = "A" использовать myskins.backgroundSkin1 , то использовать myskins.backgroundSkin2 иначе?

Ответ №1:

Создайте таблицу стилей для каждого пользовательского сегмента, где вы определяете сопоставление классов оболочки.

Затем вы можете вызвать свою таблицу стилей во время выполнения с помощью :

 styleManager.loadStyleDeclarations("yourStylesheet.swf")
  

Ответ №2:

Вы также можете установить оболочку с помощью actionscript, например:

 if (usersegment == "A")
  Banner.setStyle("skinClass", mySkins.backgroundSkin1);
else
  Banner.setStyle("skinClass", mySkins.backgroundSkin2);
  

Комментарии:

1. Извините за голосование «против», но я не думаю, что это вообще правильный путь. Это привело бы к жесткому кодированию зависимости от пользовательского сегмента, когда все, что вам нужно сделать, это загрузить другое объявление стиля. PS: еще раз извините, если система голосования «Против» должна использоваться не так (я все еще новичок на этом сайте) 🙂