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