關於Flex及AS3的百多條小小知識

2021-04-26 01:14:46 字數 2247 閱讀 1613

-->

www.riahome.cn

" />

【數字的不同進製之間的轉換】

parseint(str:string, radix:uint = 0):number 返回十進位制的數,引數radix表示要分析的數字的基數.如果省略radix,就預設為10,除非字串的開頭是"0x","0x"或"0":

trace(parseint("0x12")); //設定radix為16,輸出:18

trace(parseint("017")); //設定radix為8,輸出:15

或者使用number,uint和int物件的tostring(radix)方法.

【使用math.round()對乙個數取整,四捨五入】

math.round()

trace(math.round(204.499)); //輸出:204

trace(math.round(401.5)); //輸出:402

【使用math.floor()對乙個數向下取整,就是只要整數部分而不理會小數分】

trace(math.floor(204.99)); //輸出:204

【使用math.ceil()對乙個數向上取整,只要小數部分不為零,整數部分就加1】

trace(math.ceil(401.01)); //輸出:402

【產生乙個隨機數】

使用math.random()產生乙個偽隨機數n,其中 0 <= n < 1

【把數字取至最近的小數點位,即指定精確度】

1. 決定你要取的數字的小數點位數:例如,如果你想把90.337取成90.34,就表示你要取到兩位小數點位,也就是說你想取至最近的0.01;

2. 讓輸入值除以步驟1所選的數字(此例為0.01);

3. 使用math.round()把步驟2所計得的值取成最近的整數;

4. 把步驟3所得的結果乘以步驟2用於除法的那個值.

例如,要把90.337取成兩個小數點位數,可以使用:

trace(math.round(90.337/0.01)*0.01); //輸出:90.34

【把數字取成乙個整數的最接近倍數值】

例1,這樣會把92.5取成5的最近倍數值:

trace(math.round(92.5/5)*5); //輸出:95

例2,這樣會把92.5取成10的最近倍數值:

trace(math.round(92.5/10)*10); //輸出:90

【在指定數值範圍內獲得隨機數】

//可取範圍:[min, max]

private function randrange(min:number, max:number):number

應用例子:

模擬投銀幣,即希望得到隨機布林值(true 或 false): randrange(0, 1);

模擬投骰子,即希望得到隨機六個值: randrange(1, 6);

為避免被快取而需要產生乙個獨一無二的數字追加在url尾端,通常最佳方法是取得當前毫秒數.

【弧度(radian)與度數(degree)之間的轉換】

從弧度轉為度數: degrees = radians * 180 / math.pi

從度數轉為弧度: radians = degrees * math.pi / 180

【計算兩點之間的距離】

勾股定理: c2 = a2 + b2

假設有兩個影片剪輯mc1和mc2,則它們兩點間的距離c為:

var c:number = math.sqrt(math.pow(mc1.x - mc2.x, 2) + math.pow(mc1.y - mc2.y, 2));

【模擬圓周運動】

已知圓心o(x0, y0),半徑r和弧度angle,求圓上任意一點p(x, y)的座標:

x = x0 + (math.cos(angle) * r);

y = y0 + (math.sin(angle) * r);

注意:舞台的x軸正方向水平向右,y軸正方向垂直向下.

【模擬橢圓運動】

已知圓心o(x0, y0),長軸a,短軸b以及弧度angle,求圓上任意一點p(x, y)的座標:

x = x0 + (math.cos(angle) * a);

y = y0 + (math.sin(angle) * b);

本文**:http://hi.baidu.com/honfei/blog/item/df5d1e945a7b441bd31b7045.html

關於as3效率的優化

1.a b 要比 a a b 快,同樣,自增a 也比a a 1快,不過自減a 不是比a a 1快。2.在做除以2操作時,乘法比除法快,位運算更快.但是不要位運算來操作number型別的變數,因為它會將number型別的數值轉為整數型別。for int a b 1 faster than a b 5 ...

AS3的百條常用知識收藏

確保類是絕不會有子類,使用final final public class example super關鍵字的使用 super 父類的建構函式,只能在類例項建構函式內部使用 super.propertyname 呼叫父類的屬性,屬性需要宣告為public或protected super.method...

關於AS3中的深度複製

關於as3中的深度複製 url 參見 url 只能複製object屬性,或者類屬性,不能複製類方法。例如 color 0000ff class color a var a a new a 這時候轉殖乙個a例項 color 0000ff trace color cn.snowkit.utils.cob...