Flash as3教程:13個Flash as3常用小技巧介紹
發(fā)布時間:2014-06-25 11:39:52 作者:佚名
我要評論
本文向大家介紹了Flash as3常用13個小技巧,教程介紹的很詳細(xì),希望對大家有所幫助
本文向大家介紹了Flash as3常用13個小技巧,教程介紹的很詳細(xì),希望對大家有所幫助!
1:String轉(zhuǎn)換成Boolean
2:清除所有子對象
3:對于不需要 鼠標(biāo)交互的對象 設(shè)置屬性 mouseChildren , mouseEnabled。
4:盡可能使用 Vector 類而不是 Array 類,Vector 類的讀寫訪問速度比 Array 類快。
5:通過為矢量分配特定長度并將其長度設(shè)為固定值,可進(jìn)一步優(yōu)化。
6:將重用的值存儲在常量,可對上面實(shí)例進(jìn)一步優(yōu)化。
7:使用BitmapData的 lock() 和 unlock() 方法加快運(yùn)行速度。
8:對于 TextField 對象,請使用 appendText() 方法,而不要使用 += 運(yùn)算符。
9: 使用中括號運(yùn)算符可能會降低性能。將您的引用存儲在本地變量中可避免使用該運(yùn)算符。以下代碼示例演示了使用中括號運(yùn)算符的效率很低:
以下優(yōu)化的版本減少了對中括號運(yùn)算符的使用:
10: 盡可能使用內(nèi)聯(lián)代碼以減少代碼中函數(shù)的調(diào)用次數(shù)。例如:
比下面這種快
11:避免計算循環(huán)中的語句。
不計算循環(huán)中的語句也可實(shí)現(xiàn)優(yōu)化。以下代碼遍歷數(shù)組,但未進(jìn)行優(yōu)化,因為在每次遍歷時都需要計算數(shù)組長度:
最好存儲該值并重復(fù)使用:
12:對 while 循環(huán)使用相反的順序。
以相反順序進(jìn)行 while 循環(huán)的速度比正向循環(huán)快:
13:通常,使用盡可能低的幀速率可以提高性能。
1:String轉(zhuǎn)換成Boolean
復(fù)制代碼
代碼如下:var s:String="true"
var b:Boolean = (s=="true");
var b:Boolean = (s=="true");
2:清除所有子對象
復(fù)制代碼
代碼如下:while(container.numChildren > 0)
{
container.removeChildAt(0);
}
{
container.removeChildAt(0);
}
3:對于不需要 鼠標(biāo)交互的對象 設(shè)置屬性 mouseChildren , mouseEnabled。
4:盡可能使用 Vector 類而不是 Array 類,Vector 類的讀寫訪問速度比 Array 類快。
5:通過為矢量分配特定長度并將其長度設(shè)為固定值,可進(jìn)一步優(yōu)化。
復(fù)制代碼
代碼如下: // Specify a fixed length and initialize its length
var coordinates:Vector.<Number> = new Vector.<Number>(300000, true);
var started:Number = getTimer();
for (var i:int = 0; i< 300000; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 48
var coordinates:Vector.<Number> = new Vector.<Number>(300000, true);
var started:Number = getTimer();
for (var i:int = 0; i< 300000; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 48
6:將重用的值存儲在常量,可對上面實(shí)例進(jìn)一步優(yōu)化。
復(fù)制代碼
代碼如下: // Store the reused value to maintain code easily
const MAX_NUM:int = 300000;
var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true);
var started:Number = getTimer();
for (var i:int = 0; i< MAX_NUM; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 47
const MAX_NUM:int = 300000;
var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true);
var started:Number = getTimer();
for (var i:int = 0; i< MAX_NUM; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 47
7:使用BitmapData的 lock() 和 unlock() 方法加快運(yùn)行速度。
8:對于 TextField 對象,請使用 appendText() 方法,而不要使用 += 運(yùn)算符。
9: 使用中括號運(yùn)算符可能會降低性能。將您的引用存儲在本地變量中可避免使用該運(yùn)算符。以下代碼示例演示了使用中括號運(yùn)算符的效率很低:
復(fù)制代碼
代碼如下:var lng:int = 5000;
var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
var i:int;
for ( i = 0; i< lng; i++ )
{
arraySprite[i] = new Sprite();
}
var started:Number = getTimer();
for ( i = 0; i< lng; i++ )
{
arraySprite[i].x = Math.random()*stage.stageWidth;
arraySprite[i].y = Math.random()*stage.stageHeight;
arraySprite[i].alpha = Math.random();
arraySprite[i].rotation = Math.random()*360;
}
trace( getTimer() - started );
// output : 16
var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
var i:int;
for ( i = 0; i< lng; i++ )
{
arraySprite[i] = new Sprite();
}
var started:Number = getTimer();
for ( i = 0; i< lng; i++ )
{
arraySprite[i].x = Math.random()*stage.stageWidth;
arraySprite[i].y = Math.random()*stage.stageHeight;
arraySprite[i].alpha = Math.random();
arraySprite[i].rotation = Math.random()*360;
}
trace( getTimer() - started );
// output : 16
以下優(yōu)化的版本減少了對中括號運(yùn)算符的使用:
復(fù)制代碼
代碼如下: var lng:int = 5000;
var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
var i:int;
for ( i = 0; i< lng; i++ )
{
arraySprite[i] = new Sprite();
}
var started:Number = getTimer();
var currentSprite:Sprite;
for ( i = 0; i< lng; i++ )
{
currentSprite = arraySprite[i];
currentSprite.x = Math.random()*stage.stageWidth;
currentSprite.y = Math.random()*stage.stageHeight;
currentSprite.alpha = Math.random();
currentSprite.rotation = Math.random()*360;
}
trace( getTimer() - started );
// output : 9
var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
var i:int;
for ( i = 0; i< lng; i++ )
{
arraySprite[i] = new Sprite();
}
var started:Number = getTimer();
var currentSprite:Sprite;
for ( i = 0; i< lng; i++ )
{
currentSprite = arraySprite[i];
currentSprite.x = Math.random()*stage.stageWidth;
currentSprite.y = Math.random()*stage.stageHeight;
currentSprite.alpha = Math.random();
currentSprite.rotation = Math.random()*360;
}
trace( getTimer() - started );
// output : 9
10: 盡可能使用內(nèi)聯(lián)代碼以減少代碼中函數(shù)的調(diào)用次數(shù)。例如:
復(fù)制代碼
代碼如下: currentValue > 0 ? currentValue : -currentValue;
比下面這種快
復(fù)制代碼
代碼如下:Math.abs ( currentValue );
11:避免計算循環(huán)中的語句。
不計算循環(huán)中的語句也可實(shí)現(xiàn)優(yōu)化。以下代碼遍歷數(shù)組,但未進(jìn)行優(yōu)化,因為在每次遍歷時都需要計算數(shù)組長度:
復(fù)制代碼
代碼如下:for (var i:int = 0; i< myArray.length; i++)
{
}
{
}
最好存儲該值并重復(fù)使用:
復(fù)制代碼
代碼如下: var lng:int = myArray.length;
for (var i:int = 0; i< lng; i++)
{
}
for (var i:int = 0; i< lng; i++)
{
}
12:對 while 循環(huán)使用相反的順序。
以相反順序進(jìn)行 while 循環(huán)的速度比正向循環(huán)快:
復(fù)制代碼
代碼如下:var i:int = myArray.length;
while (--i > -1)
{
}
while (--i > -1)
{
}
13:通常,使用盡可能低的幀速率可以提高性能。
相關(guān)文章

flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19
Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細(xì)的教程,需要的朋友2018-03-11
flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.fzitv.net/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25
Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18
Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11
Flash怎么制作來回?fù)u擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡單,需要的朋友可以參考下2017-05-23
Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23











