首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex性能小结

2012-10-17 
Flex性能总结1、使用强类型变量??如:var crtPiece:int movesArray[i].piece 可以写成var crtMove:Move

Flex性能总结
1、使用强类型变量??
如:var crtPiece:int = movesArray[i].piece; 可以写成var crtMove:Move = movesArray[i]; var crtPiece:int = crtMove.piece;
如:var element:int = matrix[i][j];  可写成var row:Array = matrix[i];
var element:int = row[j];
但是本人测试过,存在疑问,发现前者比后者性能好,不知道什么原因,请看我的测试代码:

var b:String;var d:Number = 0;var time:int;var e:Number = 0;var f:Number = 0;var a:Array = [];var person:PersonVO;//可以自己实现一个PersonVOvar personTemp:PersonVO;var i:int = 0;var j:int = 0;for (i=0; i<500000; i++){person = new PersonVO();person.ID = i;person.name = "name"+ia[i]=person;}var predate:Date = new Date();trace(predate);d = predate.valueOf();time=getTimer();trace(time);for(i = 0; i < 500000; i++){b = a[i].name;}predate = new Date();trace(predate);e = predate.valueOf()-d;d = predate.valueOf();for(i = 0; i < 500000; i++){personTemp = a[i];b=personTemp.name;}predate = new Date();trace(predate);f=predate.valueOf()-d;trace(e,f);

2、Math函数是比较耗时的,简单的功能可以尽量自己实现
var x:int = Math.min(a,b)可写成var x:int = (a<b) ? a : b;
3、位操作, 乘法和除法操作之间的性能比较
我们需要理解一种概念,任何代码到最后都会转化为机器语言来执行,所以应该不难理解位操作的性能比其他任何计算都快,只是它比较难读懂而已。
var x:int = a/2;性能低于var x:int = a*0.5;性能低于var x:int = a >> 1; //2^1 = 2;
if (n % x == 0)性能低于if (n & (x-1) == 0)
4、把复杂的条件表达式分解成各个独立的结构
while(--i > -1){if (a == 1 && b == 2 && c == 3 && d == 4){var k = d * c * b * a;}}

可写成如下形式:
while(--i > -1){if (a == 1){if (b == 2){  if (c == 3)   {    if (d == 4)    {var k = d * c * b * a;} }}}} 

5、可以使用[]来创建一个Array实例
var a = new Array(); 可写成 var a = [];
6、减少容器的嵌套
7、用HBox and Vbox来代替Grid.
8、一个MXML组件的根并不需要是一个容器。 1 楼 strugglesMen 2011-05-04   Polygon是flex的扩展类,是用来在flash版 google 地图上画多边形,他好像不是uicomponent组件,那他

为什么有图形界面呢,怎样重写能让Polygon具有effect效果呢?

Polygon继承关系
http://alt.coxnewsweb.com/ajc/swf/_2010_Flash/MapsTest/sdk/docs/com/google/maps/overlays/Polyg

on.html

Polygon详细介绍
http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/reference.html#Polygon
2 楼 ch19880311 2012-07-18   strugglesMen 写道Polygon是flex的扩展类,是用来在flash版 google 地图上画多边形,他好像不是uicomponent组件,那他

为什么有图形界面呢,怎样重写能让Polygon具有effect效果呢?

Polygon继承关系
http://alt.coxnewsweb.com/ajc/swf/_2010_Flash/MapsTest/sdk/docs/com/google/maps/overlays/Polyg

on.html

Polygon详细介绍
http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/reference.html#Polygon


Polygon是折现类并不继承flex的uicomponent,
而Flex的uicomponent已经是一个比较成形的图形组件了,它最终也是实现flash.events.IEventDispatcher,Polygon之所以能画多边形,可能他通过实现鼠标事件调用google maps类中自己的图形类来画折线。
Flex中的所有特效都是继承Effect类,而Effect类继承关系如下:http://livedocs.adobe.com/flex/3_cn/langref/mx/effects/Effect.html
如果想要Polygon有特效,需要实现IEffect接口。

热点排行