如何将从xml中提取的问题拆分为特定数量的组

时间:2013-01-04 19:58:23

标签: flash actionscript

我正在写一个测验应用程序。所有问题和答案选项均来自屏幕上显示的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个问题,依此类推。我们怎么做到这一点?

1 个答案:

答案 0 :(得分: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
    }