FlashLite1.1生成随机数字的两种方法[转]
方法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);