源文件下載
本節知識要點
1、循環語句, condition 為要計算的條件,statement(s) 是只要 condition 參數計算結果為 true 就會執行的語句。
do {
statement(s)
} while (condition)
2、 break; 在循環語句中使用,break 動作可命令 Flash 跳過循環體的其余部分,停止循環動作,并執行循環語句之后的語句。
3、 Array.push();
將一個或多個元素添加到數組的結尾,并返回該數組的新長度。
4、Array.splice()
向數組中添加元素或刪除數組中元素
介紹兩種亂數排列的方法:
在1到32中選取10個隨機數,要求這10個隨機數必須是不重復的。
方法1:在1到32中選取1個隨機數后,把它與前面選取的所有數進行比較,如果和其中一個相同,那么就重新選擇;如果和前面選取的所有數都不相同,那么,這個數就被選定,并進一步選取下一個數。
例 1 打開3.5.1.fla文件,第1幀上的腳本為:
i = 0;
rand_arry = new Array();//定義數組(也可以:rand_arry =[])
do { //執行下面的循環語句
rand_arry[i] = Math.floor(Math.random()*32)+1;//給數組賦值---1到32之間的一個隨機數;
k = true; //設置一個邏輯變量;
for (j=0; j<i; j++) {
if (rand_arry[i] == rand_arry[j]) {
//把剛才取得的這個隨機數與前面取得的所有數進行比較,如果相等...
k = false;//改變邏輯變量
break; //跳出for循環
}
}
if (k) { //如果邏輯變量k沒有發生改變;
i++; //變量i加1
}
} while (i<10); //如果i<10,回到do開始的循環;如果i=10,則跳出do循環
web=rand_arry.sort(16) // //把數組rand_arry按升序排列,并用文本web顯示
點擊查看動畫效果<
方法2:把1到32個數放入一個數組中;從這個數組中隨機選出一個數;并把選得的這個數從原數組中刪去,這樣就可以保證下一次在這個數組中不會選到同一個數了;用同樣辦法、從已經刪去了一些數的原數組中再隨機選出一個數;這些被選出的數隨時放進另一個數組。
點擊查看動畫效果<
例 2 打開3.5.2.fla文件,在第1幀上的腳本為:
function luanshu() {//設置為自定義函數,便于用按扭多次調用
myArry = [];//定義兩個數組;
shu = [];
for (i=1; i<=32; i++) {
shu.push(i);//把1到32個數加入數組,(數組中為0到31個元數)
}
for (i=0; i<=9; i++) {
k = Math.floor(Math.random()*shu.length);//從數組shu中隨機選一個元素(第k個)
myArry[i] = shu[k];//把數組shu中選出的元素的值賦給數組myArry第i個元素;
shu.splice(k, 1);//把數組shu中第k個元素刪掉(保證下一次選的一定不會重復
)
web=myArry.sort(18)//把數組myArry按降序排列,并用文本web顯示
}
luanshu(); //調自定義函數
在按扭上的腳本:
on (release) {
luanshu(); //調自定義函數
}
作業
在前一節的作業的基礎上,把上面的文字和下面的mc的位置都分別作任意的排列,如下圖
注意:把文字和mc的橫坐標分別放入一個數組中
點擊查看動畫效果<
查看全套"Flash AS 高級教程"