Flex TileList控件,图像加载问题
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题在于 Flex 中的列表类型组件使用渲染器池(即:当您滚动时,相同的渲染器将被重复用于不同的项目)。因为我猜你的 init 方法仅在创建完成时或渲染器生命周期开始时调用,所以更改数据不会更改图像。
您可以改为覆盖设置数据
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