2013-01-04 37 views
1

我正在編寫測驗應用程序。所有的問題和答案選項從XML採取ANS顯示在屏幕上用動作腳本如何將從xml中提取的問題分成若干組

for (i=0; i < numberOfQuestions; i++) { 

        var questionTextField = new TextField(); 
        addChild(questionTextField); 
        questionTextField.text=i + " " + myXML.QNODE[i].QUESTION.text(); 
        questionTextField.name="q"+i; 

        questionTextField.width=400; 
        questionTextField.x= 0; 
        questionTextField.y=i * 100; 

        generateAnswers(i); 

       } 

的這個代碼,但我想顯示前5個問題,然後接下來的5等。我們應該怎麼做?

回答

0

您可以預先解析XML,以便在Array中有所有問題。然後,您可以將創建問題的循環抽象爲function,該參數爲問題索引(您將在每組問題完成時增加)和分頁限制(每次顯示的問題數量)獲取參數。您還需要一個例程來每次清除問題字段(您可能會考慮將這些字段存儲在Array上進行管理)。類似以下內容:

var questions:Array = parseXML(); 
showQuestions(0, 5); 

    function parseXML():Array 
    { 
     var arr:Array = []; 

     for (i=0; i < numberOfQuestions; i++) { 
      arr.push(myXML.QNODE[i].QUESTION.text()); 
     } 

     return arr; 
    } 

    function showQuestions(index:int, limit:int):void 
    { 
     for (var i:int = index; i <= (index + limit); i ++) 
     { 
      var questionTextField = new TextField(); 
      addChild(questionTextField); 
      questionTextField.text=i + " " + questions[i]; 
      questionTextField.name="q"+i; 

      questionTextField.width=400; 
      questionTextField.x= 0; 
      questionTextField.y=i * 100; 

      generateAnswers(i);  
     } 
    } 

    function clearQuestions():void 
    { 
     // Routine to clear old questions 
    } 
+0

我認爲var i:int = index存在問題。想想如果我們想展示問題(10,5),它會失敗,因爲10並不小,然後5 – mustafa

+0

對不起,沒有測試咔噠聲響。現在更新。 –