В приведенном ниже примере мобильных мобильных приложений Flex, почему в списке нет значков?Использование MultiDPIBitmapSource с IconItemRenderer - тестовый пример и скриншот прилагается
Скриншот:
App.mxml (просто добавьте к пустому мобильного проекта Flex в Flash Builder 4.7):
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
applicationDPI="160">
<fx:Declarations>
<s:MultiDPIBitmapSource id="EN_ICON"
source160dpi="@Embed('low-res/en_US.png')"
source240dpi="@Embed('mid-res/en_US.png')"
source320dpi="@Embed('high-res/en_US.png')"/>
<s:MultiDPIBitmapSource id="RU_ICON"
source160dpi="@Embed('low-res/ru_RU.png')"
source240dpi="@Embed('mid-res/ru_RU.png')"
source320dpi="@Embed('high-res/ru_RU.png')"/>
<s:MultiDPIBitmapSource id="DE_ICON"
source160dpi="@Embed('low-res/de_DE.png')"
source240dpi="@Embed('mid-res/de_DE.png')"
source320dpi="@Embed('high-res/de_DE.png')"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
private const LANGUAGES:ArrayCollection = new ArrayCollection([
{ icon: EN_ICON, locale: 'en_US', label: 'English' },
{ icon: RU_ICON, locale: 'ru_RU', label: 'Русский' },
{ icon: DE_ICON, locale: 'de_DE', label: 'Deutsch' }
]);
]]>
</fx:Script>
<s:List
width="100%"
height="100%"
dataProvider="{LANGUAGES}">
<s:itemRenderer>
<fx:Component>
<s:IconItemRenderer labelField="label" iconField="icon" />
</fx:Component>
</s:itemRenderer>
</s:List>
</s:Application>
Значки (любезность пользователя koppi @ openclipart.org и размещено в рубриках: src/low-res, src/mid-res, src/high-res):
Спасибо, я перевел его на 'initialize', и теперь он работает –
+1; однако что-то не имеет смысла в этом ответе. Если перемещение кода установки массива в обработчик инициализации устраняет проблему; то утверждение, что 'fx: Declarations' не создается до тех пор, пока' creationComplete() 'не будет false. – JeffryHouser
@ Reboog711 Я хотел сказать, что я знаю, что объекты в тегах объявлений * будут созданы * к моменту отправки события «creationComplete». И, как выяснил OP, они были созданы к тому времени, когда было отправлено событие «initialize».Я отредактирую, чтобы сделать эту часть понятной, спасибо! –