我有一个flex 3 TileList,载有几张图片(员工的头像图片)。
我在TileList中加载的图像存储在DataBase中(我使用ByteArray类和Base 64编码将图像存储在数据库中)。
当我从数据库中加载TileList中的图像时,没有问题它们被正确显示,但是当我在TileList中向下滚动并再次向上滚动时,图像的位置正在改变,例如图像在第一个位置现在可以在第3位等等......
有人知道如何解决这个问题吗?
提前致谢!
PS:这是TileList的ItemRenderer的代码
私有函数init():void { img.load(data.imageData); }
]]>
答案 0 :(得分:2)
问题是Flex中的列表类型组件使用渲染器池(即:滚动时,相同的渲染器将重复用于不同的项目)。因为我猜你的init方法只在creationComplete上调用,或者在渲染器的生命周期开始时调用,所以更改数据不会改变图像。
您可以覆盖设置数据
override public function set data(value:Object):void {
super.data = value;
if(value)
img.load(value.imageData);
}