Flex 的一些整理
Flex 的一些整理
2010年11月16日
你常用的Flex框架是什么?简述一下它的特点。
Mate
特点:Flex应用是基于事件驱动的,而Mate框架使其变得更简单,Mate允许用户定义是谁正在管理/处理这一事件,以及数据是否需要从服务器端返回,或者其他的什么事件需要被触发,所有这些都使得Flex应用的开发变得更加简单。
Flex是如何与Flash协作的?
实现编码与设计的好处是显而易见的:
1. 代码易于维护和二次开发,所有AS代码以面向对象的思想在flash外部组织,用notepad即能打开,比起传统的as2分散于frame之间,以及更早的分散于影片与按钮之上,其优点好处不言而喻。
2. 设计独立于代码之外。可以在没有程序员的情况下,修改程序(系统)的外观,亦可以新作一批theme:程序没有变,只是改变图片和排列位置,大小等,就可以迅速焕然一新。
如何提升Flex运行效率,请从各方面进行简述。
1. 避免容器的多重嵌套,减少相对尺寸、相对定位的使用。
2. 尽量使用轻量级的容器。如canvas
3. 避免使用大体积的组建,比如DataGrid、AdvancedDataGrid。
4. 处理数据时多用分页的方式。
5. setStyle和styleName,Flex组建的皮肤都是可视化元件,组件在自身初始化时,会使用当前的样式比如styleName完成皮肤元件的绘制。如果我们在运行期间通过setStyle修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果组件位于一个层级很深的容器中,也会有很大的计算量。
简述Flex内存释放优先原则。什么情况会发生内存泄漏,一旦有内存泄漏,要如何解决。
Flex内存释放优先原则,被删除对象在外部的所有引用一定要被删除干净才能被系统当作垃圾回收处理掉。
内存泄漏的情况:引用泄漏,系统类泄漏,效果泄漏,swf泄漏,图片泄漏,声音、视频泄漏。
内存泄漏解决办法:
1. 在组建的REMOVER_FROM_STAGE事件回调中做垃圾处理操作(移除所有对外引用,不管是vo还是组建的都需要删除),删除监听器,调用系统类的清楚方法。(首先就是引用完毕要设置引用为null,以前一直没注意这点。)
2. 利用Flex的性能优化工具Profile来对项目进程进行监控,可知道历史创建过那些对象,目前有哪些对象没有被删除,创建的数量,占用的内存比例和用量,创建过程等信息。
Flex程序启动事件的顺序:initialize、creationComplete、applicationComplete