1
我有一个List与他的ItemRenderer,好吧,当我发送数据到数据提供者,这个函数'设置数据'(覆盖)输入,我有那里两个图像和一个标签,当数据发送时,我检查图像是否有设置的源,如果这个项目有源,那么我没有设置源,以避免眨眼效果,但它不工作,为什么?在条件我检查图像的来源,这是空的。Flex项目渲染器 - 眨眼图像
来源:
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"/>
然后,当产品 '重绘' 检查这个元素的属性,如果有_data的VaR值相同,则不要再次设置该值。
编辑: 如果发送更多数据,所有项目都工作正常,除了第一项;只有第一个项目在其中一个图像中出现闪烁问题。
我看到的第一件事可能会给你带来奇怪的结果,你并没有调用超级...该方法的第1行应该读取super.data = _data;第二,你应该总是检查一个有效的值进来..所以第2行的方法应该总是阅读if(_data){//做所有其他的东西}。第三个建议总是有最后一个else,它将渲染器中的所有内容都设置为null(或者某个默认值),因为渲染器被回收并且可能在渲染器中存在旧数据。试试这些,看看是否有人为你解决问题。 –