针对不同帧实现不同效果,需要逐步添加代码
图片仅为展示,具体操作见后文实验步骤。
实验步骤
一、元件制作
1、新建一个flash文档,保存为“***填空题型课件”。在文档属性中设置文档属性。
2、制作“背景”。将图层1的名称更名为背景,利用绘图工具和文本工具制作课件的背景和标题。如图所示:
- 制作底板元件。按快捷键Ctrl+F8新建一个名为“底板”的影片剪辑元件,在元件的编辑场景中制作一个长方形,并为其填充半透明色,用作题目的底板。
4、制作“对号”元件。按快捷键Ctrl+F8新建一个名为“对号”的影片剪辑元件,在元件的编辑场景中利用遮罩技术制作一个画对号的简单动画。再添加一个图层,在第1帧的【动作】面板上添加“stop();”语句。这个元件用于填空正确的反馈。
5、制作“问号”元件。按快捷键Ctrl+F8新建一个名为“问号”的影片剪辑元件,在元件的编辑场景中制作一个问号左右摇摆的简单动画。再添加一个图层,在第1帧的【动作】面板上添加“stop();”语句。这个元件用于填空错误的反馈。
6、制作“k1”元件。按快捷键Ctrl+F8新建一个名为“k1”的影片剪辑元件,元件的第1帧插入空白关键帧,第2帧利用文本输入第1个填空的答案“答案1”。在第1帧和第2帧的【动作】面板上添加“stop();”语句。这个元件用于给学生提示。制作完成的“k1”元件如下图所示。用同样的方法制作“k2”、“k3”、和“k4” ,输入的答案分别为“答案2”、“答案3”和“答案4” 。
7、制作“OK”按钮。按快捷键Ctrl+F8新建一个名为“OK” 的按钮,每个填空完成后通过单击OK按钮提交答案判断正误。
二、场景布置
8、回到主场景,在“背景”图层上添加一个图层并命名为“底板”,从库中导入“底板”元件,并调整位置。
9、新建一图层并命名为“文本”,在这个图层上输入填空题目,空出需要填空的位置。在空出的位置下面画出横线,在横线上放置4个输入文本,并将文本实例命名为“t1”、“t2”、“t3”、“t4”。如例所示:
- 新建一图层并命名为“提示”。把库中的元件“k1”、“k2”、“k3”和“k4”放在每个填空处的适当位置。将它们的实例名同样命名为“k1”、“k2”、“k3”和“k4”。
- 在“文本”图层上添加2个图层并命名为“按钮”和“反馈”。选择“按钮”图层,把库中的OK按钮放到场景中的适当位置。选择“反馈”图层,把“对号”和“问号”元件放到场景中的适当位置,它们的实例名为“duile”和“cuowu”。
三、添加代码
12、新建一个图层并命名为“action”,选择第1帧,打开动作【面板】,添加如下代码:
var cuo1 = 0;
var cuo2 = 0;
var cuo3 = 0;
var cuo4 = 0; //声名4个变量,用来记录每个空的填写错误次数。
var jilu = 0; //声名记录变量,记录正在填写第几个空 。
t1.maxChars = 2;
t2.maxChars = 2;
t3.maxChars = 4;
t4.maxChars = 2;
//设置4个输入文本最多可输入的字符数
13、继续为主场景添加代码。
addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
function fl_EnterFrameHandler(event:Event):void{//以SWF文件的帧频重复调用下面代码
t1.addEventListener(FocusEvent.FOCUS_IN,a1);
//当“t1”文本字段接收键盘焦点时调用
function a1(event){
jilu = 1;
}
t2.addEventListener(FocusEvent.FOCUS_IN,a2);
function a2(event){
jilu = 2;
}
t3.addEventListener(FocusEvent.FOCUS_IN,a3);
function a3(event){
jilu = 3;
}
t4.addEventListener(FocusEvent.FOCUS_IN,a4);
function a4(event){
jilu = 4;
}
}
这段代码的作用是时刻检查第几个空正在被填写,当鼠标单击第1个输入文本时为变量jilu赋值为1,鼠标单击第2个输入文本时为变量jilu赋值为2,以此类推。这样用变量jilu的值得变化就可以反映出正在填写第几个空。
14、选中OK按钮,添加事件处理函数及代码。
button_1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
if (jilu == 1) { //如果变量的值为1
if (t1.text == “答案1”) { //如果文本“t1”的内容为“答案1”
duile.gotoAndPlay(2); //正确的反馈对号播放
} else {
cuowu.gotoAndPlay(2); //错误的反馈问号播放
t1.text = “”; //把文本的内容设置为空
cuo1++; //记录错误次数的变量加1
}
if (cuo1 == 3) {//如果第1个空填写了3次错误答案
k1.gotoAndStop(2); //“k1”跳转到第2帧,显示提示答案
}
}
if (jilu == 2) {
if (t2.text == "答案2") {
duile.gotoAndPlay(2);
} else {
cuowu.gotoAndPlay(2);
t2.text = "";
cuo2++;
}
if (cuo2 == 3) {
_k2.gotoAndStop(2);
}
}
if (jilu == 3) {
if (t3.text == "答案3") {
duile.gotoAndPlay(2);
} else {
cuowu.gotoAndPlay(2);
t3.text = "";
cuo3++;
}
if (cuo3 == 3) {
k3.gotoAndStop(2);
}
}
if (jilu == 4) {
if (t4.text == "答案4") {
duile.gotoAndPlay(2);
} else {
cuowu.gotoAndPlay(2);
t4.text = "";
cuo4++;
}
if (cuo4 == 3) {
k4.gotoAndStop(2);
}
}
}
四、测试影片
15、按“Ctrl+Enter”键测试影片。