|
一、
新建一個Flash文檔,1024*768的分辨率,因為目前的投影機大多是4:3的。1、背景圖層第一幀加上語句:stop();
2、“開幕按鈕”圖層的最后一幀加上語句:stop();
3、新建6個按鈕,代表6種不同的題型,分別命名為button1;button2……button6;這樣,點擊透明的“開幕按鈕”后, 6個題型按鈕就閃亮登場了。
4、在題型1按鈕上加上語句,點擊后可跳轉到"題型1"場景,其他題型按鈕也是如此。
on (release) {
gotoAndStop("題型1", 1);
}
二、建立題庫與答案
1、建立圖層如下:
“背景”圖層作為最下層;
“題目與答案”圖層中,第一幀是空白幀,作為抽取題庫的界面,須加上語句:stop();抽取的題庫中共有27道題目,加上第一幀的空白幀,共28幀。
“題目與答案”圖層中的2-27幀先打上題目,再加上27個答案,這些答案應做成“影片剪輯”分別用“answer1”-“answer27”來命名,其alpha值為0。
“答案按鈕”圖層中,第一幀是空白幀,其余的27幀均為透明的大按鈕,點擊按鈕后,原來alpha值為0的答案(answer1或answer2……或answer27)才能顯示出來。
on (release) {
number=jj// jj的意義請看下文分解
setProperty("answer"+number, _alpha, "100");//將原來透明的答案“answer …”顯示出來
}
三、在“主控按鈕與語句”圖層中開始用random函數制作第一個抽題系統,其余的5個題型的抽題系統就不再一一贅述了。
1、(如圖)制作三個按鈕,從左到右依次設置。①.左邊的“抽取題目”按鈕命名為“button11”;②.中間“返回”的綠色按鈕命名為“button00”,加入如下語句:
on (release) {
stopAllSounds();
gotoAndStop("begin", 20);
③.右邊“繼續搖號”按鈕命名為“button22”;
2、(如圖)制作一個1-27數字依次變化的影片剪輯,命名為“jump”。
3、再制作一個搖號時的影片剪輯,第一幀是空白;第二幀插入音樂,加入語句stop();第三幀也是空白,加入語句stop();stopAllSounds();。將這個影片剪輯命名為“music”,放在畫面左上角。
4、“主控按鈕與語句”圖層的第一幀中加入如下語句,對相關參數進行初始化。
aa = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21,22,23,24,25,26,27);//題目共有27題,所以定義數組aa為1-27
bb = new Array();//定義一個空數組
cc = new Array();//定義一個空數組
mmm = 0;//將mmm賦值為0
nnn = 27;//將nnn賦值為27
_root.but00._visible = false;// 將返回“begin”場景的按鈕設為不可見
_root.but22._visible = false;// 將“繼續搖號”按鈕設為不可見
music.play();//開始播放抽題時的音樂
5、“抽取題號”按鈕(button11)中加入如下語句,點擊或按空格鍵后開始隨機抽取的題庫中的題目,這是整個隨機抽取系統的關鍵所在。
on (release, keyPress "<Space>") {
music.play();//音樂開始播放
ii = random(nnn);//從nnn(0-27)中隨機抽一個數(0是第1個數,1是第2個數,以此類推……)
trace(ii);//調試時,用于跟蹤ii的變化(舉例:如果ii=8)
jj = aa[ii];//從數組aa(1至27)中取出第(ii)個數,因為數組aa中沒有0,所以第(ii)個數實際上是第(ii+1)個數(舉例:那么jj=9)
trace(jj); //調試時,用于跟蹤jj的變化
_root.jump.gotoAndStop(jj); //將jump影片剪輯跳轉到隨機數相對應的幀上,這樣屏幕上有出現了隨機抽取的數字(舉例:此時,影片剪輯“jump”將顯示“09”)
aa1 = aa.slice(0, ii);//把數組aa(1至27)中的第1個至第ii個數找出來,賦值給數組aa1
trace(aa1); //調試時,用于跟蹤aa1的變化(舉例:aa1=1,2,3……8)
aa2 = aa.slice(ii + 1, nnn);//把數組aa(1至27)中的第(ii+1)個至第27個數找出來,賦值給aa2
trace(aa2); //調試時,用于跟蹤aa2的變化(舉例:aa2=10,11,12……27)
aa = aa1.concat(aa2);//把a1和a2兩個數組合并起來,賦值給aa(就等于是在原aa數組中去掉了已被抽取的數jj)
trace(aa); //調試時,用于跟蹤aa的變化(舉例:aa=1,2,3……8,10,11,12……27)
gotoAndStop(jj+1); //跳轉到隨機數相對應的幀上,這樣屏幕上有出現了隨機抽取的題目(舉例:跳轉到本場景的第10幀,顯示第9題的畫面)
mmm++;//原值是0
nnn--;//原值是27
_root.but11._visible = false;//為防止誤操作,抽取后,“抽取”按鈕不可見
_root.but22._visible = true; //為防止誤操作,抽取后,“繼續搖號”按鈕可見
if (mmm == 27) { //如果已經抽取了27題,將執行下列語句
text = "抽題已結束,請返回!";
_root.but00._visible =true;//抽完27題,綠色返回按鈕可見
_root.jump._visible = false; //抽完27題,影片剪輯“jump”不再顯示數字
_root.but22._visible = false;_root.but11._visible = false; //抽完27題,“繼續搖號”可見
} // end if
}
6、“繼續搖號”按鈕(button22)中加入如下語句。
on (release) {
_root.but11._visible = true;//使“抽取題目”按鈕可見
_root.but22._visible =false;//隱藏“繼續搖號”按鈕
_root.jump.play();//重新讓影片剪輯“jump”滾動數字
music.play();//讓音樂重新播放
}
四、為便于操作,“場景1”的屏幕下方加上提示:
1、靜態文本“本組共27題,已抽取_____題”。
2、動態文本,屬性中的“變量”框中填入“mmm”
3、動態文本,屬性中的“變量”框中填入“text”
五、為防止重復答題,在“begin”場景中做如下設置:
回到“begin”場景,在“開幕按鈕”圖層的最后一幀加上語句:
if (mmm== 27) { //如果已經抽取了27題
_root. button1._visible = false;//讓“begin”場景中的第一個題型按鈕不可見
} // end if
六、看了許多網上的范例與解答,好像都不詳盡,只好自己做一個,與朋友們共享。如果有寶貴的建議,請直接在網頁上留言,不勝感謝。
王志勇
2012/6/17