AS基础精典教程 第十章 第三个版本的选择题 |
| 作者:佚名 来源:闪吧 作者: 小角色闪客 更新:2007-1-13 20:47:57 错误报告 我要投稿 |
首先,此版本沿用了上一版本的函数answer和gradeUser 在这一版本中,用户的答案与正确答案将使用数组来存放 看看我们的新代码: stop(); // *** Init main timeline variables var displayTotal; // Text field for displaying user''s final score var numQuestions = 2; // Number of questions in the quiz var totalCorrect = 0; // Number of correct answers // 上一版本中,用户答案使用了两个变量来存放,但是试想如果是10题、100题呢?使用数组将更容易管理,也更容易处理 var userAnswers = new Array(); // Array containing user''s guesses 这是定义数组的语句,但是还未输入数据 var correctAnswers = [3, 2]; // Array containing each correct answer 这一句既定义数组,同时输入数据,因为正确答案是已知的 // *** Function to register the user''s answers function answer (choice) { // Tack the user''s answer onto our array 将数据PUSH进数组,因为是顺序答题,所以用方法PUSH userAnswers.push(choice); // Do a little navigation, baby // 如果答案数超过题目总数,自然就跳到quizEnd帧了 // 注意在本例中,已经不用上例的answer.currentAnswer而是使用userAnswers.length来控制问题是否结束 // 我们甚至可以用correctAnswers.length来代替numQuestions,记录正确答案数组的长度,不就是题目总数吗? if (userAnswers.length == numQuestions) { gotoAndStop ("quizEnd"); } else { gotoAndStop ("q"+ (userAnswers.length + 1)); } } // *** Function to tally the user''s score function gradeUser() { // Count how many questions were answered correctly. // 开始改题,这里就不用再用上个版本的eval啦,那个东东实在是难懂兼难用,这个版本相对就很清晰明快 for (var j = 0; j < userAnswers.length; j++) { if (userAnswers[j] == correctAnswers[j]) { totalCorrect++; } } // Show the user''s score in a dynamic text field displayTotal = totalCorrect; } 电影的其他部分不用改动(这就是使用FUNTION的好处啦,升级多快~) OK,进入下一章之前想想目前版本的点 * 题目,每次修改题目都要进入FLASH的场景修改,麻烦 * 按钮,每题就要做三个按钮 这都是麻烦的地方,我们要更精益求精地修改,让我们的多选题,轻易地从两题变成10题、100题 接下来我们要做的是 * 进一步改进我们存放数据的结构 * 让我们可以动态地生成每一道题目,只需输入数据,而不需要在FLASH里面作就可以自动生成 所以——我们需要面向对象编程!(object oriented programming) chocobo:嘻嘻,众菜鸟是不是都倒了,AS基础教程竟然开始讲OOP了,呵呵,没关系啊,上面的教程一直都这么浅,以后也深不了
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |