home *** CD-ROM | disk | FTP | other *** search
/ Echoes of Ireland / Echoes of Ireland.iso / IRISH_ENGINE / quiz / quiz.swf / scripts / frame_10 / DoAction.as
Encoding:
Text File  |  2004-06-16  |  3.1 KB  |  121 lines

  1. function buildQuestionsArray()
  2. {
  3.    stripWhitespaceDoublePass(quizDoc);
  4.    var quizNode = quizDoc.firstChild;
  5.    var i = 0;
  6.    while(i < quizNode.childNodes.length)
  7.    {
  8.       var thisQuestion = quizNode.childNodes[i];
  9.       var choicesArray = new Array();
  10.       var j = 0;
  11.       while(j < thisQuestion.childNodes.length)
  12.       {
  13.          var thisChoice = thisQuestion.childNodes[j];
  14.          choicesArray[j] = thisChoice.firstChild.nodeValue;
  15.          j++;
  16.       }
  17.       questionsArray[i] = new Question(parseInt(thisQuestion.attributes.answer),thisQuestion.attributes.text,choicesArray);
  18.       i++;
  19.    }
  20.    questionsArray.shuffle();
  21.    loadMsg = "";
  22.    makeQuestion(currentQuestion);
  23. }
  24. function Question(correctAnswer, questionText, answers)
  25. {
  26.    this.correctAnswer = correctAnswer;
  27.    this.questionText = questionText;
  28.    this.answers = answers;
  29. }
  30. function makeQuestion(currentQuestion)
  31. {
  32.    questionClip.removeMovieClip();
  33.    attachMovie("questionTemplate","questionClip",0);
  34.    questionClip._x = 470;
  35.    questionClip._y = 300;
  36.    questionClip.qNum = "Question " + (currentQuestion + 1);
  37.    questionClip.qText = "" + questionsArray[currentQuestion].questionText;
  38.    var i = 0;
  39.    while(i < questionsArray[currentQuestion].answers.length)
  40.    {
  41.       questionClip.attachMovie("answerTemplate","answer" + i,i);
  42.       questionClip["answer" + i]._y += 70 + i * 20;
  43.       questionClip["answer" + i]._x -= 80;
  44.       questionClip["answer" + i].answerText = questionsArray[currentQuestion].answers[i];
  45.       i++;
  46.    }
  47. }
  48. function answer(choice)
  49. {
  50.    userAnswers.push(choice);
  51.    MeAnswer = userAnswers.length;
  52.    if(userAnswers[MeAnswer - 1] == questionsArray[currentQuestion].correctAnswer)
  53.    {
  54.       totalCorrect++;
  55.    }
  56.    if(currentQuestion + 1 == 5)
  57.    {
  58.       questionClip.removeMovieClip();
  59.       gotoAndStop("prefamine");
  60.    }
  61.    else
  62.    {
  63.       makeQuestion(++currentQuestion);
  64.    }
  65. }
  66. function stripWhitespaceDoublePass(XMLnode)
  67. {
  68.    var i = 0;
  69.    while(i < XMLnode.childNodes.length)
  70.    {
  71.       if(XMLnode.childNodes[i].nodeType == 3)
  72.       {
  73.          var j = 0;
  74.          var emptyNode = true;
  75.          j = 0;
  76.          while(j < XMLnode.childNodes[i].nodeValue.length)
  77.          {
  78.             if(32 < XMLnode.childNodes[i].nodeValue.charCodeAt(j))
  79.             {
  80.                emptyNode = false;
  81.                break;
  82.             }
  83.             j++;
  84.          }
  85.          if(emptyNode)
  86.          {
  87.             XMLnode.childNodes[i].removeNode();
  88.          }
  89.       }
  90.       i++;
  91.    }
  92.    var k = 0;
  93.    while(k < XMLnode.childNodes.length)
  94.    {
  95.       stripWhitespaceDoublePass(XMLnode.childNodes[k]);
  96.       k++;
  97.    }
  98. }
  99. stop();
  100. var displayTotal;
  101. var totalCorrect = 0;
  102. var userAnswers = new Array();
  103. var currentQuestion = 0;
  104. var questionsArray = new Array();
  105. var quizDoc = new XML();
  106. quizDoc.onLoad = buildQuestionsArray;
  107. quizDoc.load("quiz/quiz.xml");
  108. Array.prototype.shuffle = function()
  109. {
  110.    var len = this.length;
  111.    var i = 0;
  112.    while(i < len)
  113.    {
  114.       var rand = Math.floor(Math.random() * len);
  115.       var temp = this[i];
  116.       this[i] = this[rand];
  117.       this[rand] = temp;
  118.       i++;
  119.    }
  120. };
  121.