APP下载

巧用ActionScript语言制作单选题自动评分系统

2016-03-22李雪芹王智伟

电脑知识与技术 2016年1期

李雪芹++王智伟

摘要:FLASH作为多媒体课件制作软件之一,其强大的交互功能是其他软件所无法比拟的,而交互功能的实现主要是通过按钮与其内嵌的ActionScript语言配合在一起来实现的。这篇文章主要讲述如何利用ActionScript语言中的条件语句制作多媒体课件的测评部分——单项选择题自动评分系统。采用按钮与ActionScript2.0中的条件语句相结合,实现对用户所选答案的显示及对错判断、得分,从而实现单项选择题的自动阅卷工作。

关键词:图形元件;按钮元件;IF条件语句;静态文本;动态文本的text属性

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)01-0090-04

Using the ActionScript Language Radio Grading System

LI Xue-qin, WANG Zhi-wei

(Xuchang Technical and Economic School, Changge 461500, China)

Abstract: FLASH as one of the multimedia courseware making software, its powerful interactive function is unmatched by other software, and the realization of the interactive function is realized mainly through the button and the embedded ActionScript language. This article mainly talks about how to make use of the conditional statements in the ActionScript language to make the evaluation of the multimedia courseware. The use of buttons and ActionScript2.0 in the combination of conditional statements, to achieve the user's answers to the display and the wrong judgments, score, so as to achieve the individual choice of the automatic scoring.

Key words: graphic element; button element; IF conditional statements; static text; text properties of dynamic text

ActionScript编程语言是Adobe公司专为FLASH设计的交互性脚本语言,是一种面向对象的编程语言。FLASH软件中按钮的主要作用是制作交互动画,但仅仅有按钮还不能控制动画的交互,必须与ActionScript编程语言中的语句配合才能实现交互动画的制作。下面我们就利用按钮与ActionScript2.0语言中的条件语句来制作单项选择题自动评分这一案例。

1 案例描述

用户在每道题的选项上单击,答案区域会显示所选答案的序号;单击“提交”按钮后,出现红色“改卷中,请稍等……”的提示,同时在对错区域显示所选答案的判断;之后在成绩区域显示所得分数。单击“重做”按钮后,界面重新初始化,答案显示区域清空,对错显示区域清空,成绩显示区域清空。

2案例展示

1)初始界面。如图1所示。

图1 初始界面

2)单击“提交”按钮后处于等待状态的界面。如图2所示。

图2 改卷等待界面

3)改卷后成绩出来时的界面。如图3所示。

图3 成绩界面

4) 单击“重做”按钮后的界面与初始界面一样。如图1所示。

3案例分析

1)单项选择题的题目及选项使用文本工具制作成静态文本。

2)每道题括号中的答案及对错显示使用文本工具制作成动态文本,并分别起实例名。

3)标题使用文本工具制作成静态文本,添加“时间轴特效”→“投影”效果。

4)得分情况使用文本工具制作成动态文本,并起实例名。

5)提交与重做制作成按钮元件。

6)每个选项上要放置透明按钮元件实例,并添加相应条件语句用于交互。

7)改卷等待动画使用“时间轴特效” →“展开”效果制作。

4案例制作步骤

1)新建一个FLASH文件(ActionScript 2.0),设置舞台合适大小 (本例采用800*600像素),其它采用默认配置。

2)创建元件:

①创建具有阴影效果的“标题”图形元件。

单击“插入”→“新建元件”命令打开“新建元件”对话框,输入元件名称:“标题”,类型:“图形”,单击“确定”按钮,进入元件编辑窗口。在舞台中输入“单项选择题练习”,设置相对于舞台垂直居中对齐和水平居中对齐。选择“插入”→“时间轴特效”→“效果”→“投影”命令,设置阴影偏移量X轴与Y轴都为5,其它的可以采用默认配置,单击“确定”按钮,这样就可以制作出具有投影效果的标题文字。同时图层1将自动改名为“投影1”,库中自动产生了一个名为“投影1”的图形元件。返回场景。

②创建具有展开效果的“等候改卷”图形元件。

单击“插入”---“新建元件”命令,打开“新建元件”对话框,输入元件名称:“等候改卷”,类型:“图形”,单击“确定”按钮,进入元件编辑编辑窗口。在舞台中输入“改卷中,请稍等……”,设置相对于舞台垂直居中对齐和水平居中对齐。选择“插入” →“时间轴特效” →“效果” →“展开”命令,设置展开持续时间:50帧,展开方向:向右,其它采用默认配置,单击“确定”按钮。这样就制作出了具有展开效果的等候文字,同时图层1自动改名为“展开2”,库中自动产生了一个名为“展开2”的图形元件。返回场景。

③创建具有“透明效果”的按钮元件。

单击“插入” →“新建元件”命令,打开“新建元件”对话框,输入元件名称:“透明按钮”,类型:“按钮”,单击“确定”按钮,进入元件编辑编辑窗口。在“弹起”帧上绘制一个无边框色的矩形,填充色为透明(设置方法:将填充色的Alpha值设置为0%),在点击帧上插入普通帧。返回场景。

④创建“提交”与“重做”按钮。

单击“插入”---“新建元件”命令,打开“新建元件”对话框,输入元件名称:“提交”,类型:“按钮”,单击“确定”按钮,进入元件编辑编辑窗口。图层1:在“弹起”帧上绘制一个任意颜色的椭圆,在点击帧上插入普通帧。新建图层2:在“弹起”帧上输入文字“提交”,在点击帧上插入普通帧(注意文字的颜色不要与椭圆的颜色一样,否则就看不到文字了)。返回场景。

打开库面板,右击“提交”按钮元件,从快捷菜单中选择直接复制,元件名称为:“重做”,类型:“按钮”,单击“确定”按钮。在库中就自动产生了一个“重做”按钮元件,但内容与“提交”按钮一样,双击“重做”按钮元件图标,打开“重做”按钮元件编辑界面,直接修改图层2的内容为“重做”就可以了。返回场景。这样做的好处是可以快速的做出两个大小一样,对齐方式一样的按钮元件,当然也可以重新从新建元件做起,方法与上述做按钮的方法一致。还有一种方法是直接从公用库中拖出一个按钮元件到舞台,然后双击这个按钮元件进入编辑界面,把文字层的内容进行修改也可以使用。

3)主场景设置:

①将图层1命名为:“背景”。

在第1帧上导入一张背景图片,利用对齐面板中的“匹配大小” →“匹配宽和高”按钮,设置背景图片匹配舞台大小,垂直居中对齐和水平居中对齐。在第50帧上插入帧,让背景延时至50帧。

②插入图层2,并改名为“题目”。

打开库面板,将投影2图形元件拖入舞台合适位置作为单选题的标题放在第1帧上。在标题下面插入静态文本框。使用“文本工具”将单选题的内容依次输入。在第50帧上插入帧,让题目延时至50帧。

③插入图层3,并改名为“答案及对错判断”。

第1帧,在每一题的括号中分别插入动态文本,并在属性栏中输入实例名为da1_txt,da2_txt,…,da10_txt,用于显示学生做选答案。在每个题的右上角分别插入动态文本,并在属性栏中输入实例名为dc1_txt,dc2_txt,…,dc10_txt,将这些动态文本设置的字号稍大些,字体颜色设置为红色,字型加粗,用于显示学生做选答案的对错。在第50帧上插入帧。

④插入图层4,改名为“按钮”。

在第1帧上将“提交”按钮与“重做”按钮拖入舞台合适的位置,如上图1所示。从库面板中将“透明按钮”拖至舞台多次,放于每个题的选项上,并调整大小与选项的大小一致。在第50帧上插入帧。

在每个选项的透明按钮上添加代码。例:第1题的第A选项上代码为:

on (release) {

d1=0;da1 _txt.text="A";

} //按下此按钮后,第1题后的括号中显示A,错误答案,不得分。

第1题的第B选项上代码为:

on (release) {

d1=10;da1 _txt.text="B";

} //按下此按钮后,第1题后的括号中显示B,正确答案,得10分。

第1题的第C选项上代码为:

on (release) {

d1=0;da1 _txt.text="C";

} //按下此按钮后,第1题后的括号中显示C,错误答案,不得分。

第1题的第D选项上代码为:

on (release) {

d1=0;da1 _txt.text="D";

} //按下此按钮后,第1题后的括号中显示D,错误答案,不得分。

下面其它题后的透明按钮上都输入如上代码,只是控制每个题答案的变量不一样,要改一下,比如:第2题将d1改为d2,da1_txt.text=" "改为da2_txt.text=" ",设置一个正确答案得分,其它错误答案不得分。以后的题依次类推。

“提交”按钮代码:

on (release) {

gotoAndPlay(2);

} //转到第2帧去执行。

“重做”按钮代码:

on (release) {

da1_txt.text =""; da2_txt.text =""; da3_txt.text ="";da4_txt.text =""; da5_txt.text ="";

da6_txt.text =""; da7_txt.text =""; da8_txt.text ="";da9_txt.text =""; da10_txt.text=""; //将每一题的答案动态文本框置空。

dc1_txt.text =""; dc2_txt.text =""; dc3_txt.text ="";dc4_txt.text ="";dc5_txt.text ="";

dc6_txt.text ="";dc7_txt.text =""; dc8_txt.text ="";dc9_txt.text ="";dc10_txt.text=""; //将每一题的对错动态文本框置空。

cj_txt.text="" //将成绩栏置空

gotoAndStop(1); //转到第1帧重新去执行。

}

⑤插入图层4,改名为:“等候改卷”。在第二帧插入空白关键帧,将“等候改卷”图形元件拖入舞台下边合适位置。在第50帧上插入空白关键帧,让等候改卷消失。

⑥插入图层5,改名为:“背景音乐”。在第二帧插入空白关键帧,导入一首美妙动听的轻音乐,让学生在交卷后的焦急等待中放松一下心情。在第50帧上插入空白关键帧,让音乐停止。

⑦插入图层6,改名为:“成绩”。第一帧,在标题的右边插入一动态文本,在属性面板中变量栏输入变量名为:cj_txt。打开动作面板。输入如下代码:

stop(); //控制动画停止播放。

d1=0; d2=0; d3=0; d4=0; d5=0; d6=0;d7=0;d8=0; d9=0;d10=0;//分别存放每题的得分。

df=0; //存放总得分,初始值为0。

cj_txt.text="" //得分栏显示为空

在第50帧上插入空白关键帧,然后打开动作面板,输入如下代码:

if (d1= =10) {

dc1_txt.text="√";

}else {

dc1_txt.text="×";

} //如果第1题得分,说明答案正确就显示对号√,否则显示错号×。

if (d2= =10) {

dc2_txt.text="√";

}else {

dc2_txt.text="×";

} //如果第2题得分,说明答案正确就显示对号√,否则显示错号×。

if (d3= =10) {

dc3_txt.text="√";

}else {

dc3_txt.text="×";

} //如果第3题得分,说明答案正确就显示对号√,否则显示错号×。

if (d4= =10) {

dc4_txt.text="√";

}else {

dc4_txt.text="×";

} //如果第4题得分,说明答案正确就显示对号√,否则显示错号×。

if (d5= =10) {

dc5_txt.text="√";

}else {

dc5_txt.text="×";

} //如果第5题得分,说明答案正确就显示对号√,否则显示错号×。

if (d6= =10) {

dc6_txt.text="√";

}else {

dc6_txt.text="×";.

} //如果第6题得分,说明答案正确就显示对号√,否则显示错号×。

if (d7= =10) {

dc7_txt.text="√";

}else {

dc7_txt.text="×";

} //如果第7题得分,说明答案正确就显示对号√,否则显示错号×。

if (d8= =10) {

dc8_txt.text="√";

}else {

dc8_txt.text="×";

} //如果第8题得分,说明答案正确就显示对号√,否则显示错号×。

if (d9= =10) {

dc9_txt.text="√";

}else {

dc9_txt.text="×";

} //如果第9题得分,说明答案正确就显示对号√,否则显示错号×。

if (d10= =10) {

dc10. _txt.text="√";

}else {

dc10_txt.text="×";

} //如果第10题得分,说明答案正确就显示对号√,否则显示错号×。

df=d1+d2+d3+d4+d5+d6+d7+d8+d9+d10; //计算总得分。

cj_txt.text=df //成绩栏显示总得分

stop();

4)保存文件。

5) 测试文件。

5案例总结

本案例主要通过FLASH中的按钮与其内嵌的ActionScript2.0编程语言中的IF条件语句制作了一个单项选择题的模板,在本案例中充分使用了动态文本的text属性来显示所选答案与对错判断。其中显示对错的语句也可以放在题后的每个透明按钮实例的动作语句中,只是每做一道题就可以直接显示出对错来。如果制作单元小测,建议把显示对错的语句放在最后一个关键帧的动作语句中;如果制作课堂练习,建议把显示对错的语句放在每道题后的透明按钮实例的语句中。本案例主要适用于制作多媒体课件的测评部分。

参考文献:

[1] 陈民,吴婷.Flash CS3动画设计与制作[M].南京: 凤凰出版传媒集团,江苏教育出版社,全国中等职业学校计算机类通用教材,2010.

[1]章精设,缪亮,白香芳.Flash ActionScript 2.0编程技术教程[M].北京:清华大学出版社,2005.