我有一个与extrunal itemrenderer组成的列表。我的itemrender是一个我想在运行时加载的模块。
我使用了moduleloader标签,但它没有显示anthing。如果我不使用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>
答案 0 :(得分:0)
问题可能是您无法加载模块的多个实例。解决这个问题的方法是通过更改URL来使Flex认为每次调用都是唯一的。
尝试用
替换ModuleLoader代码 <mx:ModuleLoader url="{'module.swf?' + Math.round(Math.random() * 10)}"/>