Flex TileList控件,图像加载问题

发布于 2024-08-11 15:58:37 字数 427 浏览 11 评论 0原文

我有一个 flex 3 TileList,其中加载多个图像(员工的头像图片)。

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

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

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

提前致谢!

PS:这是TileList的ItemRenderer的代码

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

]]>

I have a flex 3 TileList in wich a load several image (employee's headshot pictures).

The image I'm loading in the TileList are stored in a DataBase (I use the ByteArray class and a Base 64 encoding to store the images in the DB).

When I load the images in the TileList from the DB, there is no problem they are displayed correctly, but when I scroll down in the TileList and scroll up again, the position of the images is changing, so for example the image in first position can be now in the 3rd and so on ....

Does somebody knows how to fix that ?

Thanks in advance!

PS : Here is the code of the ItemRenderer for the TileList

private function init():void
{
img.load(data.imageData);
}

]]>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹤仙姿 2024-08-18 15:58:37

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

您可以改为覆盖设置数据

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

The problem is that the list type components in Flex use renderer pooling (ie: when you scroll, the same renderers are reused for different items). Since I guess you init method is only called on creationComplete or sometime at the start of the life cycle of the renderer, changing the data won't change the image.

You could override set data instead

override public function set data(value:Object):void {
    super.data = value;
    if(value)
        img.load(value.imageData);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文