var correctAnswer1 = 3; // The correct choice for question 1 第一题的正确答案 var correctAnswer2 = 2; // The correct choice for question 2 第二题的正确答案 // Function to register user's answers 这个函数的功能是提交答题者的答案 function answer (choice) { answer.currentAnswer++; //现在answer.currentAnswer是1,正在提交的是第一题,下一次answer.currentAnswer就变成2,代表提交的是第二题 set ("q" + answer.currentAnswer + "answer", choice); // 不复杂不复杂,"q" + answer.currentAnswer + "answer"第一题的时候就是q1answer,第二题是q2answer,把参数choice传过来的值放到两个变量里面而已 if (answer.currentAnswer == numQuestions) { // 判断是不是两题都答完了,是就转到问题结束帧 gotoAndStop ("quizEnd"); } else { gotoAndStop ("q" + (answer.currentAnswer + 1)); } } // Function to tally user's score 这个函数是改题的 function gradeUser() { // Count how many questions user answered correctly 将两个答案和正确答案比较,对就totalCorrect加一 //此处用了一个for循环,大家如有疑问的,可以查AS字典,在帝国就有中文版 for (i = 1; i <= numQuestions; i++) { // 下面用的eval有必要说一下,它的作用是将字符串和变量组成一个新的变量名,是个很方便的功能 if (eval("q" + i + "answer") == eval("correctAnswer" + i)) { totalCorrect++; } } // Show user's score in an on-screen text field 将答案显示出来,与第一个例子同 displayTotal = totalCorrect; }
在下一个新版本的多选题里,我们将使用什么AS的特性,来让它更好呢? 那就是数组。 数组就是一系列的数据(MOOCK又开始上课了,chocobo的英文和计算机都不算好,为免误人子弟,概念性的东西尽量精简) 例如这样两个变量储存的数据: fruit1 = "oranges"; fruit2 = "apples"; 它们是互相独立的,使用起来很不方便,我们需要的是数组,以下是数组的定义方法,用“&#;”框住,用“,”分隔开每个元素: fruitList = ["oranges", "apples"]; 现在两个数据是放到同一个数组里面了,我们开始详细解说数组 数组里面每一个数据称为元素(element)。 而每一个元素都有个独立数字代表所处的位置,数字叫索引(index),注意! 第一个数据的索引是0,第二个才是1 要按索引来提出数据,我们要用一个运算符&#;,例如使用fruitList第一个元素赋值给a: a=fruitList�; 又例如将a的值赋给fruitList第一个元素: fruitList�=a; 当然&#;里面也可以放表达式、变量: var index = 3; // Set numApples to 2 var a = fruitList[index]; 下面是个使用表达式的例子: // Create a myFrames array. Note the legal formatting. 建立一个记录LABEL的数组 var myFrames = ["storyEnding1", "storyEnding2", "storyEnding3", "storyEnding4"]; // Set randomFrame to a randomly picked element of myFrames // by calculating a random number between 0 and 3 // 随机从数组中提取一个LABEL var randomFrame = myFrames[Math.floor(Math.random() * 4)];