Flash编程无基础入门教程
var displayTotal; // Textfield for displaying user's score
var numQuestions = 2; // Number of quiz questions
var q1answer; // User's answer for question1
var q2answer; // User's answer for question2
var totalCorrect = 0; // Number of questions answered correctly 以上和例一一样
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;
}
好了,第一帧的函数写好了,之后每个答案的选择按钮就简单了
例如第一题的选项一,就写:
on (release) {
answer(1);
}
第二题的写法同上(如果你的选择题有很多道,做法都是一样的,只要复制第一题,然后把题目改了就行)
最后在quizEnd帧里面调用改题的函数gradeUser();
分析第二个例子是代码,你会发现比第一个例子精简了很多。
而集中在同一帧的代码,将:
* 更容易修改
* 更容易升级
* 更少的出错机会
* 更容易查错
* 更精简(更少的字节数)
第九章 数组(arrays)
在下一个新版本的多选题里,我们将使用什么AS的特性,来让它更好呢?
那就是数组。
[文章热度:]
123456789101112131415161718192021
上一页:Flash 物理效果收藏
下一页:Flash As编码习惯