用 Flash 制作选择题模板

如果用Flash制作课件中的选择题，每次都要打开Flash源文件进行修改，或者重新设计编辑。其实我们可以在Flash中把选择题做成一个模板，每次打开源文件，用文本编辑器编辑选择题的题目、标准答案等，然后直接调用即可。

先来看看完工后的选择题模板的时间轴的结构和界面（图中的序号①~⑩是为了下面的叙述方便而加上去的）。整个动画分为三层：放置按钮的层（Buttons）、放置静态文本及动态文本框的层（Texts）、放置动作代码的层（Actions），下面按动画的层次具体谈谈选择题模板的制作方法。

1、静态文本及动态文本框的层（Texts）
全部文本及文本框放在第11帧。在这一层的上方放上静态文本“选择题（共有 题，每题 分）”，在其中的两个空格里放上两个动态文本框（图中的①和②），文本变量分别为mylength和fen，用来读取题库中的题目总数及每题所占的分数；右上角有一个动态文本框（图中的③）显示最后的得分，文本变量为zongfen；左上方的动态文本框（图中的④）文本变量为tiqi，用来显示题次；图中标示为⑤的动态文本框用来显示题目，文本变量为i；图中标示为⑥的动态文本框用来显示解答者所选答案，文本变量为answer；图中分别标示为⑦、⑧、⑨、⑩的动态文本框用来显示选择题的四个选项，文本变量分别为a、b、c、d。

2、动作代码的层（Actions）
这一层有4个关键帧：分别是第1、10、11、12帧。

（1）第1帧代码如下：

loadVariablesNum ("timu.txt", 0); // 读入题目 loadVariablesNum ("each.txt", 0); // 读入每题所占的分数变量 loadVariablesNum ("dan0.txt", 0);

// 读入标准答案

// 下面初始化数组与变量

num = new Array(); //题目数组

num0 = new Array();

//标准答案数组

youchoice = new Array();

//解答者所选答案数组

tiqi = 1; // tiqi 为显示题次

zongfen = ""; // zongfen 为显示总分

j = 0;

// j 为判断是否做完全部题目而设

n = 0;

// n 为数组变量

（2）第10帧代码如下：

num = timu.split("#"); // 建立题目数组 mylength = num.length/5; //获取总题目数 num0 = dan0.split("#");

// 建立标准答案数组

fen = Number(each);

//获取每小题所占分数值

（3）第11帧代码如下：

// 判断题库中是否还有题目，是否继续下一题 if (j〉=mylength) { stop (); } else { // 获取题目

i = num[5*n];

a = num[5*n+1];

b = num[5*n+2];

c = num[5*n+3];

d = num[5*n+4];

}

（4）第12帧代码为：

stop ();

3、按钮层（Buttons）
按钮全部放在第11帧，按钮层里共有8个按钮：[开始]、[上一题]、[下一题]、[完成]按钮以及[A]、[B]、[C]、[D]4个选择按钮，他们的Actions代码分别如下：

（1）[开始]按钮

on (release) { gotoAndPlay (1); }

（2）[上一题]按钮

if (j〉0 && j != mylength+1) { youchoice[n] = answer; //把之前所选答案写入数组 tiqi = tiqi-1; //题次减 1，返回前一题

n = n-1;

j = j-1;

answer = youchoice[n];

//显示答案数组的前一项的值

}

gotoAndPlay (11);

}

（3）[下一题]按钮

on (release) { if (j〈mylength-1) { youchoice[n] = answer; // 把操作者选择答案写入数组 n++; tiqi++;

j++;

answer = youchoice[n];

//显示在当前题目所选答案

gotoAndPlay (11);

} else {

stop ();

}

}

（4）[完成]按钮

on (release) { if (j〈=mylength) { zongfen = 0; youchoice[n] = answer; // 把操作者最后所选答案写入数组

for (m=0; m〈mylength; m++) {

?if (youchoice[m] == num0[m]) {

zongfen = zongfen+Number(each);

// 判断选择是否正确,并计算总分

}

}

n++;

j = mylength+1;

answer = "";// 清空所选答案

} else {

stop ();

}

}

（5）[A]、[B]、[C]、[D]4个选择按钮代码分别如下：

on(release){ answer="A"; } on(release){ answer="B";

}

on(release){

answer="C";

}

on(release){

answer="D";

}

4、编辑选择题文本
到这里，剩下的工作就是编辑题目（Timu.txt）、标准答案（Dan0.txt）和每个题目所占分数（Each.txt）三个文本文件了。

要注意前两个文本的格式：文本的开头先写“变量= ”，文本中题目与题目之间、题目与题目选项之间、题目选项与题目选项之间用“#”隔开。如题目文本（Timu.txt）的格式是：

timu=计算机中专门用于计算的设备是（ ）#主板#中央处理器#内存#硬盘#如果需要扫描相片，你需要购置（ ）#扫描仪#数码相机#数码摄像机#显卡

标准答案（Dan0.txt）文本的格式是：dan0=B#A

每个题目所占分数（Each.txt）文本的格式是：each=6

修改each的值即可改变每个题目所占分数。

最后需要注意的是：把刚才的三个文本文件保存在与Flash文件相同的目录下。