Flex經驗

1. release時去掉所有trace信息和logger信息,否則影響性能
2. 如果報無法訪問本地文件或swf 在compile裏面寫 -use-network=false
3. 實現component真正隱藏除了設置visible=false外還需要設includeInLayout = false
4. 設手型有時出來設buttonMode="true" useHandCursor="true" 還要設mouseChildren="false"
5. for循環時要用
var len:int = array.length;
for(var i:int = 0; i<len; i++)

{

    //i 不要用number, len變量外提


以相反順序進行 while 循環的速度比正向循環快:
var i:int = myArray.length;
while (--i > -1)
{
}


6. IE中FLASH鏈接區域鼠標閃 , 在FLASH的屬性參數中加上以下兩句中任意一句都可以解決

<param name="wmode" value="opaque">

<param name="wmode" value="transparent">

7. 用i>>1 替代 i/2

8. 創建Object 用 var obj:Object = {} 代替 var obj:Object = new Object();  速度提升1.5倍

創建Array 用 var arr:Array = [] 代替 var arr:Array = new Array();  速度提升3.5倍

ArrayCollection的創建非常的慢,耗時大概是var arr:Array = []的100倍

9. 循環中,常量要提出來,例如:

var constant:String= MouseEvent.CLICK                

for(var i:Number=0; i<100000; i++)                

{                   

    tmpVar = constant;          

}

10. flex加載完module後,module裏面的東西如果是用flash的組件,有時會出現flash組件不顯示,需要調用validateNow()

11. air工程中,自定義alert跟flex工程不一樣,flex可以 Application.application.addChild(alert),air在開多窗體時要 Window.getWindow(obj).addChild(alert), obj是傳進來的當前對象

12. 外部讀取文本要考慮轉義字符的問題(比如 換行/n會變成//n 要替換下)

13. Container的borderStyle屬性設爲solid,cornerRadius纔會有效果了。


14. .actionScriptProperties 這個文件用來配置編譯的屬性,出現莫名其妙的問題的話 不妨看看這個文件


15.儘可能避免使用中括號運算符。

currentSprite = arraySprite[i];
currentSprite.x = Math.random()*stage.stageWidth;
currentSprite.y = Math.random()*stage.stageHeight;

16.請儘可能更新循環外的文本字段。

for (var i:int = 0; i< 1500; i++ )
{
content += "ActionScript 3";
}
myTextField.text = content;

17.不使用alpha屬性

 

轉自:http://xinzy.iteye.com/blog/464249

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章