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。

链接地址: http://www.djcxy.com/p/34645.html

上一篇: Flex item renderer

下一篇: Getting a list of the rendered items