ActionScript 3 和 Flex框架的性能优化
几日前被老总推荐文章一篇,来自7yue兄的blog,作者是Sean Moore ,
原文地址:http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html
与其在程序写完了之后臃肿得跑不动,不如平时注意这些关键点,时时提醒自己。翻译出来,以便以后时时查阅。
1 创建新数组时避免使用它的构造函数。
这样做:var a = [];
而不要这样做:var a = new Array();
2 创建数组是一个消耗量很大的操作,所以请谨慎进行以下类型的操作:
var vanityCollection01 : Array = new Array();
var vanityCollection02 : Array = new Array();
var vanityCollection03 : Array = new Array();
var vanityCollection04 : Array = new Array();
3 复制一个数组最快的方式是:
var copy : Array = sourceArray.concat();
4 无论你用哪种方式,为数组的元素设置值都是一个慢的操作。
employees.push( employee );
employees[2] = employee;
5 在数组中获得一个值的速度是设置一个值的二倍。
var employee : Employee = employees[2];
6 将属性函数设置为静态函数,这样你在使用它的时候就不用实例化一个该类的对象。
StringUtils.trim( "text with space at end " );
类定义:
package
{
public final class StringUtils
{
public static function trim( s : String ) : String
{
var trimmed : String;
// 逻辑实现代码
return trimmed;
}
}
}
7 使用常量关键字const来定义那些在程序运行周期内都不会发生值改变的属性。
public const APPLICATION_PUBLISHER : String = "Comp
相关文档:
初学flex,遇到一个问题‘在datagrid的一列中利用它的值转换显示不同的图片’,在网上搜了搜问了问,解决了哎,解决办法贴出来,希望对其他人有帮助,
利用datagrid的labelFunction解决的,如下:
在datagrid的
<mx:DataGridColumn dataField="level" labelFunction="formatiImg"/>
/* ......
cimmicola能否讲讲flex开发经验(轉貼)应该清楚Flex是完全编译成swf文件后交由客户端浏览器中的Flash player来执行的。而不像传统web语言,经由服务端进行解释后转化为纯html元素和脚本。
这样来说,一个纯Flex应用(主要是指企业级开发,有很多功能和业务流程的那种)编译之后的体积,基本上是不能在互联网上 ......
测试其实没有太多的可比较性,我主要想比较相互之间对数据访问的速度和数据传输大小的比较,Flex的性能上出乎我的意料之外
我采用的是Flex直接访问Java服务,和Silverlight 访问webservice
从同样的SQL语句得到的数据大小看,flex读取数据流量的比silverlight小5倍,原因是flex访问数据时对数据进行了压缩
从显示数据的性 ......
AMF是Adobe独家开发出来的通信协议,它采用二进制压缩,序列化、反序列化、传输数据,从而为Flash 播放器与Flash Remoting网关通信提供了一种轻量级的、高效能的通信方式。如下图所示:
AMF(Action Message Format)是一种 binary format的资料型态,透过 AMF overHTTP的方式将flash端资料编码后传回server,server端的 ......