2013-01-04 36 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

对不起,没有测试咔哒声响。现在更新。 –