Luar's Flash Playground:兩個簡單快速產生亂序數字的Flash Lite 1.1程式碼
新聞(100)
觀點或評論(93)
Flash書(63)
教程(65)
Design Patterns(3)
FlashCom筆記(45)
Flash Remoting筆記(27)
Flex筆記(11)
Flash Lite筆記(14)
PHP資訊(22)
Ajax筆記(9)
習作(47)
組件(15)
酷站(31)
學習資源(28)
書籍推介(15)
本站與我(90)
RSS瀏覽器
聯絡
熱愛鑽研
Ajax
ActionScript
Flash
Flash Lite
Flex
Flash Remoting
FlashCom
Director
Lingo
PHP
Multiplayer Game

搜尋
VCASMO
兩個簡單快速產生亂序數字的Flash Lite 1.1程式碼 (12-03-2007)
方法1

在Web版Flash開發中,我們可以用兩個Array(A,B)容易地幫助產生亂序數字,先將順序數字放進Array A,Random一個Array Index,將值放到Array B,原來元素被splice()去,基於Array A目前length作Random範圍,再重複進行。

不過,Flash Lite 1.1沒有Array,我們要用eval()來模擬Array;同時,沒有splice(),要將Array A最後元素取代被抽出元素,人工地減少Array A Length。
// arrStr用來trace偵錯,你可以刪除它相關程式碼
taLen = 10;
for (i=0; i<taLen; i++) {
    set("ta" add i, i);
}
arrStr = "";
for (j=0; j<10; j++) {
    ran = random(taLen);
    set("wa" add j, eval("ta" add ran));
    arrStr = arrStr add eval("wa" add j) add ", ";
    set("ta" add ran, eval("ta" add (taLen-1)));
    taLen--;
}
trace(arrStr);

方法2

先產生一個Array儲存順序數字,Random一個Array Index,將它的值個第1個Array原素互換,然後到第2個Array,如此類推…
taLen = 10;
for (i=0; i<taLen; i++) {
    set("ta" add i, i);
}
i = taLen;
while (i>0) {
    j = random(i);
    i--;
    tmp = eval("ta" add i);
    set("ta" add i, eval("ta" add j));
    set("ta" add j, tmp);
}
// arrStr用來trace偵錯,你可以刪除以下程式碼
arrStr = "";
for (i=0; i<taLen; i++) {
    arrStr = arrStr add eval("ta" add i) add ", ";
}
trace(arrStr);

備註: 方法2在記憶使用量和效能上都比方法1好。

本文章由luar發表。
同組文章

Movable Type 3.15系統支持,Luar's Production版權所有。