Как загрузить модули flex как списки элементов с тегом moduleloader? - PullRequest
0 голосов
/ 02 ноября 2009

У меня есть список компонентов с extrunal itemrenderer. Мой itemrender - это модуль, который я хотел бы загрузить во время выполнения.

Я использовал тэг moduleloader, но он не отображает муравейник. Если я не использую тег moduleloader, но <modulename> вместо <productsView:menuBtn>, он отображает содержимое.

Кто-нибудь знает, как мне это сделать?

Файл приложения с компонентом списка

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
 layout="vertical"
 initialize="catagories.send();">

<mx:HTTPService id="catagories" url="data/products.xml"
            resultFormat="e4x"/>

<mx:XMLListCollection id="myXC"
        source="{catagories.lastResult.product}"/>

<mx:List id="r" dataProvider="{myXC}" 
     width="185" height="100%" 
     backgroundAlpha="0"
     paddingTop="0"
     paddingBottom="0"
     paddingLeft="0"
     paddingRight="0"
     borderStyle="none">
     <mx:itemRenderer>
      <mx:Component>
       <mx:ModuleLoader url="productsView/menuBtn.swf"/>
      </mx:Component>
     </mx:itemRenderer>
    </mx:List>
</mx:Application>

мой модуль

<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" 
 layout="horizontal"
 width="185" 
    paddingLeft="3"
 paddingRight="3"
 paddingTop="3"
 paddingBottom="3"
 backgroundColor="#FFFFFF"
 backgroundAlpha="0.8"
 borderStyle="solid">

 <mx:Image id="labelIcon" source="{data.icon}"/>
 <mx:Label id="catagory" text="{data.catagory}"/>
</mx:Module>

1 Ответ

0 голосов
/ 02 ноября 2009

Возможно, проблема в том, что вы не можете загрузить несколько экземпляров модуля. Чтобы обойти это, нужно изменить URL, чтобы заставить Flex думать, что каждый вызов уникален.

Попробуйте заменить код ModuleLoader на

<mx:ModuleLoader url="{'module.swf?' + Math.round(Math.random() * 10)}"/>

...