如果想建立5題選題,每題都有4個選項,使用RadioButton。每個題目先在場景
中建立4個RadioButton,取名要和數字連上關係,到時才方便用程式去控制,
第一題4個選項為:Question1_1、Question1_2、Question1_3、Question1_4;
第二題4個選項為:Question2_1、Question2_2、Question2_3、Question2_4;
第三題4個選項為:Question3_1、Question3_2、Question3_3、Question3_4;
第四題4個選項為:Question4_1、Question4_2、Question4_3、Question4_4;
第五題4個選項為:Question5_1、Question5_2、Question5_3、Question5_4;
同時建立名為 gradeMessage 和 wrongMessage 的 Label 組件,到時用來顯示分數
和錯誤的題目。
再建立一個名為 countGrade_btn 的按鈕。
//-------------------- 程式碼
import fl.controls.RadioButton;
import fl.controls.RadioButtonGroup;
var ANSCODE=["A","B","C","D"]; //四個選項編號
var rightANS=["B","A","C","C","D"]; //假設標準答案為 BACCD
//初始化答案 (undefined 型態)
var yourANS=[undefined,undefined,undefined,undefined,undefined,];
//初始化每個選項的value值及建立監聽
for (var i=1;i<6;i++) { //共有5個題目
for (var j=1;j<5;j++) { //每個題目4個選項
// 陣列從0開始計
this.getChildByName("Question"+i+"_"+j).value=ANSCODE[j-1] ;
this.getChildByName("Question"+i+"_"+j).groupName=j ;
this.getChildByName("Question"+i+"_"+j).addEventListener (MouseEvent.CLICK,ansit);
}
}
countGrade_btn.addEventListener (MouseEvent.MOUSE_DOWN,countit);
//-----函式區
function ansit(event:MouseEvent):void { //使用者選答案
yourANS[event.currentTarget.groupName]=event.currentTarget.value;
}
function countit(event:MouseEvent):void { //評分
var RightAnsNum:int=0; //回答正確的題目總數
var wrongQUESTION :String="" ; //記錄錯誤的題數
for (var k=1;k<=10;k++) {
if (yourANS[k]==undefined) { gradeMessage.text="第 "+k+" 題沒有回答喔:" ; return; }
if (yourANS[k]!=correctANS[k]) {wrongQUESTION=wrongQUESTION+"第 "+k+" 題 ";}
if (yourANS[k]==correctANS[k]) { RightAnsNum++;}
}
// 針對所得的分數給予相對的回應
if (RightAnsNum<6) { gradeMessage.text="你的得分是: "+ RightAnsNum*10+" 分,還要再努力喔!"; }
if (RightAnsNum==6) { gradeMessage.text="你的得分是: "+ RightAnsNum*10+" 分,運氣不錯,剛好及格!"; }
if ((6<RightAnsNum) && (RightAnsNum<9)) { gradeMessage.text="你的得分是: "+ RightAnsNum*10+" 分,有潛力,再努力!"; }
if (RightAnsNum==9) { gradeMessage.text="你的得分是: "+ RightAnsNum*10+" 分,不錯喔!"; }
if (RightAnsNum==10) { gradeMessage.text="你的得分是: "+ RightAnsNum*10+" 分,真是太棒了!"; }
wrongMessage.text="答錯的題目有: "+wrongQUESTION;
}