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