Flex TileList控件,图像加载问题

时间:2009-11-18 23:35:11

标签: flex image caching refresh tilelist

我有一个flex 3 TileList,载有几张图片(员工的头像图片)。

我在TileList中加载的图像存储在DataBase中(我使用ByteArray类和Base 64编码将图像存储在数据库中)。

当我从数据库中加载TileList中的图像时,没有问题它们被正确显示,但是当我在TileList中向下滚动并再次向上滚动时,图像的位置正在改变,例如图像在第一个位置现在可以在第3位等等......

有人知道如何解决这个问题吗?

提前致谢!

PS:这是TileList的ItemRenderer的代码

        

私有函数init():void    {     img.load(data.imageData);    }

]]>  

1 个答案:

答案 0 :(得分:2)

问题是Flex中的列表类型组件使用渲染器池(即:滚动时,相同的渲染器将重复用于不同的项目)。因为我猜你的init方法只在creationComplete上调用,或者在渲染器的生命周期开始时调用,所以更改数据不会改变图像。

您可以覆盖设置数据

override public function set data(value:Object):void {
    super.data = value;
    if(value)
        img.load(value.imageData);
}