Flex项目渲染器 - 闪烁图像

时间:2012-12-03 21:13:12

标签: flex list itemrenderer

我有一个带有他的ItemRenderer的List,好吧,当我将数据发送到dataprovider时,这输入函数'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值,则不要再次设置该值。

编辑: 如果发送的数据越多,除第一项外,所有项目都能正常工作;只有第一个项目在其中一个图像中出现此问题。

1 个答案:

答案 0 :(得分:0)

您可以将其添加到列表定义中(它将关闭渲染器的回收):

<s:List>
   <s:layout>
      <s:VerticalLayout useVirtualLayout="false" />
   </s:layout>
</s:list>

并查看问题是否仍然存在。

如果不是,您可以这样离开,但它可能会影响应用程序对大型列表的性能。 否则,您可能会以不会再次设置source的方式来渲染渲染器,而是添加来自某些预制集合的已制作图像,尤其是“源”是网址且未嵌入BitmapAsset时。