0

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

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

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

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

提前致谢!

PS:这是 TileList 的 ItemRenderer 的代码

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

]]>

4

1 回答 1

2

问题在于 Flex 中的列表类型组件使用渲染器池(即:当您滚动时,相同的渲染器被重用于不同的项目)。由于我猜您的 init 方法仅在 creationComplete 或渲染器生命周期开始时调用,因此更改数据不会更改图像。

您可以改写设置数据

override public function set data(value:Object):void {
    super.data = value;
    if(value)
        img.load(value.imageData);
}
于 2009-11-19T14:57:55.530 回答