Flash โค้ดซ้ำกันแก้ยังไงให้เล่นได้

คือตอนนี้กำลังทำ CAI ที่มีแบบทดสอบ 2 บท มีแบบฝึกหัด 2 บทอยู่ค่ะ ด้วยโปรแกรม Adobe flash cs5.5 ใช as3 แต่พอทำแบบฝึกหัดไป 1 บทโดยโค้ดตัวนี้

import flash.events.MouseEvent;

stop();
var NumberofQ:int = 10;// จำนวนคำถาม
var Questionประหลาดใจbject = new Object();//สร้างออปเจค คำถาม
var RightAnsArray:Array = ["C","B","A","C","D","A","B","D","A","C"];//อาเรย์เก็บคำตอบที่ถูกต้อง เรียงข้อ 1 2 3 ...
var Score:int = 0;//เก็บคะแนนที่ได้
var AnsRight:int = 0;//เก็บจำนวนข้อที่ถูก
var AnsWrong:int = 0;//เก็บจำนวนข้อที่ผิด
Question.CurrentQ = 0;// ข้อที่กำลังทำอยู่
NewQuestion();//เริ่มคำถาม
function NewQuestion()
{
    Question.CurrentQ++;
    Question.Choose = "";// เก็บว่าคำถามนั้น มีการเลือกคำตอบหรือยัง ตอนนี้ยัง
    AnsA.buttonMode = true;
    AnsB.buttonMode = true;
    AnsC.buttonMode = true;
    AnsD.buttonMode = true;
    AnsA.addEventListener(MouseEvent.CLICK, onAns);
    AnsB.addEventListener(MouseEvent.CLICK, onAns);
    AnsC.addEventListener(MouseEvent.CLICK, onAns);
    AnsD.addEventListener(MouseEvent.CLICK, onAns);
    Btn_Next.addEventListener(MouseEvent.MOUSE_UP, onNext);
}
//เมื่อเลือกคำตอบ ข้อใดข้อหนึ่ง
function onAns(evt:MouseEvent):void
{
    Question.Choose = (evt.target.name).slice(-1,4);//เลือกเอาเฉพาะอักษรตัวสุดท้าย
    txtError.text = "";//เมื่อมีการเลือกคำตอบ ก็ไม่ต้องมีการแจ้งเตือน
    switch (Question.Choose)
    {
        case "A" :
            Mark("A");
            break;
        case "B" :
            Mark("B");
            break;
        case "C" :
            Mark("C");
            break;
        case "D" :
            Mark("D");
            break;
    }

}
//เมื่อกดปุ่ม ถัดไป
function onNext(evt:MouseEvent):void
{
    if (Question.Choose != "")
    {
        if (Question.Choose == RightAnsArray[Question.CurrentQ - 1])
        {
            Score++;//จำนวนคะแนน +1
            AnsRight++;//จำนวนข้อถูก +1
        }
        else
        {
            AnsWrong++;//จำนวนการตอบผิด +1
        }
        Mark("None");//เรียกฟังก์ชัน ให้เคลียการวงกลมรอบตัวเลือกออก
        nextFrame();//เล่นเฟรมถัดไป
        //ถ้ายังไม่ถึงคำถามสุดท้ายให้แสดงคำถามต่อไป
        if (Question.CurrentQ < NumberofQ)
        {
            NewQuestion();//เรียกฟังก์ชันเพื่อไปคำถามข้อต่อไป
        }
    }
    else
    {
        txtError.text = "กรุณาเลือกคำตอบก่อน";//แจ้งเตือนเมื่อยังไม่ได้เลือกคำตอบ
    }
}
//ฟังก์ชันในการวงกลมรอบตัวเลือก กขคง
function Mark(M:String)
{
    AnsA.gotoAndStop(1);
    AnsB.gotoAndStop(1);
    AnsC.gotoAndStop(1);
    AnsD.gotoAndStop(1);
    switch (M)
    {
        case "A" :
            AnsA.gotoAndStop(2);
            break;
        case "B" :
            AnsB.gotoAndStop(2);
            break;
        case "C" :
            AnsC.gotoAndStop(2);
            break;
        case "D" :
            AnsD.gotoAndStop(2);
            break;
        case "None" :
            AnsA.gotoAndStop(1);
            AnsB.gotoAndStop(1);
            AnsC.gotoAndStop(1);
            AnsD.gotoAndStop(1);
            break;
    }
}


แล้วเราก็ทำบทอื่นๆโดยโค้ดตัวนี้ แต่เราเปลี่ยนชื่อบัททอนต่างๆหมดแล้วนะ พอกดเล่นมันก็ขึ้นเออเร่อ ในช่วงโค้ดตรงนี้

var NumberofQ:int = 10;// จำนวนคำถาม
var Questionประหลาดใจbject = new Object();//สร้างออปเจค คำถาม
var RightAnsArray:Array = ["C","B","A","C","D","A","B","D","A","C"];//อาเรย์เก็บคำตอบที่ถูกต้อง เรียงข้อ 1 2 3 ...
var Score:int = 0;//เก็บคะแนนที่ได้
var AnsRight:int = 0;//เก็บจำนวนข้อที่ถูก
var AnsWrong:int = 0;//เก็บจำนวนข้อที่ผิด
Question.CurrentQ = 0;// ข้อที่กำลังทำอยู่
NewQuestion();//เริ่มคำถาม
function NewQuestion()
{


เราเหลือแค่เชื่อมแบบฝึกหัดเข้ากันกับตัวหลักแต่มันก็ไม่ได้ ไม่งั้นเราก็จะเสร้จแล้ว ใครพอรู้วิธีการแก้ไขช่วยบอกทีนะค่ะ เราจนปัญญาจริงๆ

ปล.ถ้าแท๊กผิดห้องขออภัยด้วยนะ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่