我有一个Flex3 TileList在其中加载几个图像(员工的头像照片)。
我在TileList中加载的图像存储在DataBase中(我使用ByteArray类和Base64编码将图像存储在DB中)。
当我从DB加载TileList中的图像时,它们显示正确没有问题,但当我在TileList中向下滚动并再次向上滚动时,图像的位置正在变化,例如,第一个位置的图像现在可能在第三个位置,依此类推……
有没有人知道怎么解决这个问题?
提前感谢!
PS :这是TileList的ItemRenderer代码
私有函数init():void { img.load(data.imageData);}
]]>
发布于 2009-11-19 22:57:56
问题是Flex中的列表类型组件使用渲染器池(即:当您滚动时,相同的渲染器被重用于不同的项目)。因为我猜您的初始化方法只在creationComplete上调用,或者在渲染器生命周期的开始时调用,所以更改数据不会更改图像。
您可以改写集合数据
override public function set data(value:Object):void {
super.data = value;
if(value)
img.load(value.imageData);
}https://stackoverflow.com/questions/1759893
复制相似问题