AS基础教程整理第9/13页
更新时间:2007年03月22日 00:00:00 作者:
第十章 第三个版本的选择题
首先,此版本沿用了上一版本的函数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了,呵呵,没关系啊,上面的教程一直都这么浅,以后也深不了
相关文章
AS3.0实例学习 熟悉新的事件机制和addChild的运用
AS3.0实例学习 熟悉新的事件机制和addChild的运用...2007-12-12利用asp或jsp,flash怎样把数据库中的一张表中的所有记录读取并显示出来
利用asp或jsp,flash怎样把数据库中的一张表中的所有记录读取并显示出来...2006-11-11
最新评论