Flex项目渲染器
我有一个List和他的ItemRenderer,好吧,当我将数据发送给数据提供者时,这个函数输入'set data'(覆盖),我有两个图像和一个标签,当数据发送时我检查是否图像有源代码将设置,如果此项目有源,然后我没有设置源以避免眨眼效果,但它不工作,为什么? 在条件我检查图像的来源,这是空的。
资源:
override public function set data( _data:Object ) : void {
if (imgStatusMessage.source != _data.source) {
imgStatusMessage.source = _data.source;
}
}
...
<s:Image id="imgStatusMessage" width="15" height="15" visible="false"/>
然后,当item是'repaint'时检查该元素的属性,如果具有相同的_data var值,则不要再次设置该值。
编辑:如果发送更多数据,所有项目都能正常工作,除了第一项; 只有第一个项目在其中一个图像中出现闪烁问题。
您可以将其添加到列表定义中(它将关闭渲染器的回收):
<s:List>
<s:layout>
<s:VerticalLayout useVirtualLayout="false" />
</s:layout>
</s:list>
并查看问题是否存在。
如果不是,那么可以保留它,但这可能会影响应用程序的大型列表性能。 否则,您可能会以不会再次设置source
方式来渲染渲染器,而是会从某个预制集合添加已制作的图像,特别是如果“源”是一个url而不是嵌入的BitmapAsset。
上一篇: Flex item renderer