如果在flex页面中以九宫格的形式显示大量的图片,大概有万把张(其实就四张图片根据状态不同显示不同图片)

最近把一个C/S项目改成B/S项目,里面有个实时监控(传递来的数据有个状态,如果状态是正常,显示正常状态的图标,如果状态为异常,则显示异常状态图标)的模块。leader决... 最近把一个C/S项目改成B/S项目,里面有个实时监控(传递来的数据有个状态,如果状态是正常,显示正常状态的图标,如果状态为异常,则显示异常状态图标)的模块。

leader决定用flex来做这模块。我很光荣的奉命用一个星期去学flex,然后准备开发。现在基本上flex和java的交互都弄得差不多了,但是在显示数据的时候问题来了,打开客户端的flex页面时,速度慢得不行,卡。

在flex中我需要接收从java服务器端传递过来的数据,然后用列表的形式将这些数据显示出来。其中有个状态(status)的属性,我要根据实时接收的状态的值(正常、关闭、未知、待处理四种状态),显示不同的图片(正常.jpg/关闭.jpg/未知.jpg/待处理.jpg)。即,假如这一秒接收到的状态是正常,就显示正常.jpg这张图,两秒后接收到待处理的状态,就显示待处理.jpg这张图。

但是因为我是通过actionscript代码来循环创建Image控件的方式来显示状态图标的,一万多的数据量,就创建了一万多的Image,感觉这样做是有问题的,这样做对内存简直是可耻的浪费。

但是我接触flex也才一个多星期,很多东西都是懵懵懂懂的,很多flex对数据的处理方式都不清楚,公司也没谁接触过flex,哪位兄弟姐妹对flex熟点的给指点下迷津,感激不尽。
这是读取出来的图片(测试用的),加载好久才加载完,而且内存狂飙到2G。
展开
 我来答
匿名用户
2012-12-05
展开全部
虽然有1w张图,但是你不可能同时显示这么多啊,屏幕上有显示的才生成,不显示的不理。

上面是简单的原理。具体实现不需要这么复杂,直接使用list + 图片的渲染器即可,渲染器在页面滚动过程中会复用(由list自己实现)
更多追问追答
追问
list + 图片的渲染器  这是什么东西呢?接触flex不久,很多东西都不知道呢,能不能具体说说或者给个简单的例子我看看?兄弟感激不尽啊
追答

如图,具体的各组件大小、数据源都自己写吧

aspwolf1470
2012-12-04 · TA获得超过2643个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:1256万
展开全部
没太看明白要干什么- -
比较笨的办法就是,你在同一个位置放上4张对应不同状态的图,然后根据获取到的状态显示不同图片
<s:Group>

<s:Image source="xxxx" visible="{this.status=='正常'}"/>
<s:Image source="xxxx" visible="{this.status=='关闭'}"/>
……

</s:Group>
追问
简单来说,就是我想做个列表,列表中有个状态的字段,这个字段是用图片显示的,根据不同的状态的值(【正常】【关闭】【未知】【待处理】)显示【正常.jpg】【关闭.jpg】【未知.jpg】【待处理.jpg】这几张图片
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zk329754551
2012-12-04 · TA获得超过251个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:117万
展开全部
你别一直创建对象啊,创建的多了当然就崩溃了,你直接修改img对象的图片源啊
你定义4张图片源对象 好像是
[@='url']
var img1:Class;
好像就是这样定义的 好久没用flex了记不清了
追问

但是没有Image对象,我怎么显示出我的图片呢?我想做的是这样的功能

这些状态都是从java端读取出来的,没有办法事先在mxml文件中写好image控件,因为到底有多少数据都是不确定的,可能几千条,也可能上万条。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
五五开Fl
2012-12-04 · 超过18用户采纳过TA的回答
知道答主
回答量:180
采纳率:0%
帮助的人:52.6万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式