Flex程序开发心得小结

作者:网络 来源:佚名 更新时间:2008-04-11 15:59:03 点击:

和flash的开发环境相比,flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。

在flex的帮助手册中,有一个专门的章节讲了程序的优化,下面是我结合帮助作的几点小结:

1、避免容器的多级嵌套,减少相对尺寸、相对定位的使用。
在使用百分比来给容器内的元件定尺寸,一旦容器中的任何一个元件的位置和尺寸变化,都会引发容器对所有子级的重定位动作。如果嵌套的级别很深,这个计算量会很大。

2、尽量使用轻量级的容器
canvas是体积最小的容器,它只支持绝对定位。很多时候,都可以使用它来代替hbox和vbox。另外,canvas也是我们编写自定义容器性质组件的一个首选。它具有容器的基本功能,利于扩展。

3、避免使用大体积的组件,比如datagrid、advanceddatagrid
大个子组件的功能强大,但开销也是非常大的。由于功能的复杂性,使得皮肤、样式、itemrenderer的实现都格外复杂。

4、处理数据时多用分页的方式
在使用数据类型控件时,尽量减少数据一次的显示量。比如tilelist,它会把数据一次性全部创建,不管是不是需要显示,这样很浪费资源。 viewstack 、tabnavigator等在处理元件时,并不是一次创建,只要元件在第一次被显示时才创建,这样,就避免的不必要的开销。

5、setstyle和stylename
flex 组件的皮肤都是可视化元件,组件在自身初始化时,会使用当前的样式比如stylename完成所有皮肤元件的绘制。如果我们在运行期间通过setstyle修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果组件位于一个层级很深的容器中,也会有一个大的计算量。