如果想建立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;
}

   

arrow
arrow
    全站熱搜

    ydmqqq 發表在 痞客邦 留言(0) 人氣()