详细内容
 
当前位置
Flash AS 脚本在多媒体课件制作中的应用
作者:管理员    发布于:2012-07-30 22:48:12    文字:【】【】【

Flash AS 脚本在多媒体课件制作中的应用

随着网络技术的飞速发展和应用的不断普及,多媒体课件的网络化应用发展趋势越来越明显。这就要求课件可以在Internet网络中实时、稳定地下载和播放,这对多媒体课件制作提出了更高的要求。

多媒体课件制作的重要特征是多媒体性、开放性、交互性。多媒体性是指使用多种媒体传达课程的内容;开放性是指向使用者提供一个脱离系统本身的平台,使得使用者可以很方便的加入课件的内容;交互性指用户可以控制课件的播放,可以实现用户和计算机相互的交流,从而达到控制学习过程的目的。正是由于多媒体课件的这些特征,使传统教学方式受到强大的挑战。也使得多媒体课件具备强大的生命力和应用需求。

1.问题的提出

由于这些显著的特点,满足了课件的多媒性、交互性、开放性和网络化要求,越来越受到广大网络课件制作者的喜受,已经逐渐成为课件制作的重要利器。本文以制作单项选择题课件为例,同时也简单介绍多项选择题、填空题等课件制作的关键技术,探讨应用Flash动作脚本语言制作交互性和开放性课件的方法。

2使用FLASH的脚本语言实现多媒体课件的交互性

Flash的动作脚本语言——ActionScript是一种面向对象的编程语言。从FLASH开始,到后来推出的FLASHMX2004版本,其动作脚本语言的功能更加完善和强大。灵活运用动作脚本语言,我们就可以制作出具有良好交互性的多媒体课件。如何运用FLASH制作具有较强交互性的多媒体课件呢?实际上,Flash动作脚本语言像其它脚本语言一样具有丰富的语言元素,包括常量、变量、运算符、表达式、函数、属性、动作、对象和电影剪辑等等。其中的按钮、影片剪辑以及UI组件,均可接受用户的鼠标点击或键盘输入事件,从而实现了多媒体课件的交互性。

2.1按钮及其事件

在Flash动作脚本语言中的On()函数是最传统的事件处理方法,它直接作用于按钮元件实例。

其一般形式如下:

on(mouseEvent){

statement(s);//此处是您的语句

}

其中的statement(s)是发生mouseEvent时执行的指令。mouseEvent是称作“事件”的触发器。当发生此事件时,将触发执行{}内语句,完成指定的动作。对于按钮而言,可以触发动作的按钮事件有8种:

lpress在鼠标指针经过按钮时按下鼠标按钮。

lrelease在鼠标指针经过按钮时释放鼠标按钮。

lreleaseOutside当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮。

lrollout鼠标指针滑出按钮区域。

lrollOver鼠标指针滑过按钮。

ldragOut在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域。

ldragOver在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。

lkeyPress("key")按下指定的键

例如,假设我们想让用户按下《播放》按钮或按下P键时,播放影片,则可在按钮上加入动作:

on(release,keyPress“P”){

play();

}

2.2影片剪辑及其事件

Flash动作脚本语言中的onClipEvent动作用于处理电影剪辑事件。该动作的语法格式如下:


onClipEvent(movieEvent);{

//语句

}

其中的movieEvent是一个事件触发器。当事件发生时,执行该事件后{}内

语句。对于剪辑而言,可指定的触发事件有9种,其中:

lload:影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。

lunload:在从时间轴中删除影片剪辑之后,此动作在第1帧中启动。在向受影响的帧附加任何动作之前,先处理与Unload影片剪辑事件关联的动作。

lenterFrame:以影片剪辑帧频不断触发的动作。首先处理与enterFrame剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作。

lmouseMove:每次移动鼠标时启动此动作。_xmouse和_ymouse属性用于确定当前鼠标位置。

lmouseDown:当按下鼠标左键时启动此动作。

lmouseUp:当释放鼠标左键时启动此动作。

lkeyDown:当按下某个键时启动此动作。使用Key.getCode()获取有关最后按下的键的信息。

lkeyUp:当释放某个键时启动此动作。使用Key.getCode()方法获取有关最后按下的键的信息。

ldata:当在loadVariables()或loadMovie()动作中接收数据时启动此动作。当与loadVariables()动作一起指定时,data事件只在加载最后一个变量时发生一次。当与loadMovie()动作一起指定时,获取数据的每一部分时,data事件都重复发生。

例如,可以给一个电影剪辑分配下面的动作:

onClipEvent(load){

movie_x=this.x;//设定影片剪辑实例的x轴坐标

_root.qi._visible=flase;//将影片剪辑实例先隐藏起来

}

这段代码的功能是:当指定的影片剪辑载入时,初始化设定好实例的x轴坐标,并先隐藏标起来。

2.3UI组件

自从FLASHMX以后,引入了UI组件,使得创建一些应用程序用户界面就比较容易了。特别在FlashMX2004中,提供的UI组件更为丰富,如文本框、复选框、单选钮、组合框、列表框等,同时还提供了一个“组件检查器”面板,使用它很容易对组件实例进行设置和修改。UI组件中的大部分均可接受鼠标Click事件,如在复选框实例中写下代码:

on(click){

trace(“复选框实例被单击”)

}

则单击后,会弹出一下“输出”面板,显示“复选框实例被单击”。

3使用FLASH动作脚本实现多媒体课件的开放性

在使用FLASH制作多媒体课件时,一方面可以使用上述介绍的UI组件,如文本域组件,运用在课件中可以实现即时输入功能,在一定程度上体现了课件的开放性;另一方面,Flash动作脚本语言还提供了一个loadVariables命令,利用该命令程序可以调用外部文本文件中定义的变量和设置变量的值,因此,可以通过编辑修改外部文本文件,达到设置和修改课件内容的目的,实现多媒体课件的开放性。

例如,在制作多媒体测试类课件时,可以把题目文件放在外部文本文件中,使用loadVariables命令将其调用FLASH文件中,通过修改文本文件,就可以实现随时更换测试题的目的。如图1所示:

 


loadVariables命令动作的语法格式如下:

loadVariables(url,location[,variables]);

动作中的参数url是载入外部文件的绝对或相对URL。URL中指向的主机必须与下载的Flash课件处在同一子域;location是一个可选的参数,用于指定接收变量的层级或目标。variables是一个可选的参数,用于指定发送变量的方法。

4使用FLASH设计测试课件的基本思路

使用FLASH设计测试课件,在设计上应包含出题、评分、反馈等功能,设计算法及思路如图2所示。

 

 

如何在FLASH中实现上述流程并充分体现其交互性和开放性?主要采取以下措施:

①使用LoadVariablesNum调用第一道测试题的文本文件,当文本文件的内容调用结束后,动画自动跳转到放置动态文本对象的那一帧,动态文本对象接收文本文件中的测试题目并将它们显示出来。

②在动态文本对象所在的帧上放置“下一题”按钮,在程序运行时,单击该按钮,同样使用LoadVariablesNum命令调入下一道测试题相对应的文本文件,等文件的内容调用结束后,动画自动跳转到放置动态文本对象的那一帧,把下一道测试题目显示出来……依次类推。

③放置“查看答案”按钮,利用脚本编程实现在做任何题时均能够反馈当前的做题情况。放置“终止”测试按钮,使用户能够随时终止退出程序,界面如图3所示。

 


5单项选择题测试课件设计示例

单项选择题是测试题类型中最常用的一种题型,在单项选择题中,使用UI组件中的单选钮组件接收用户选择操作,使用loadVariables动作载入试题文件。

5.1试题文件组成

作为示例,我们制作一个包含5道题的测试媒体课件,每道题是一个文本文件,分别命名为question1.txt—question5.txt。

 

图4测试题的文件组成


文件question1.txt形式如下:/

q=怎样认定一个帧定义了程序代码?

&answer1=该帧有一个实心圆点

&answer2=该帧颜色与其它不同

&answer3=该帧上有一个“a”标志

&answer4=该帧有一个空心圆点

&correctanswer=C&eof=1

同时建立一个test.txt文件,用于对变量进行初始化设置(如题目总数等),内容如下:

title=多媒体课件-单选测验&totalQuestions=5&eof=1

5.2帧的设计

多项选择测试课件主时间轴的设计如图5所示。包含有11层,分别是帧标签、动作脚本、查看答案、题目答案、题目答案文本框、单选按钮、题号及动态文本框、题目背景、总标题动态文本、初始页面、标题、背景等。实际上,其重点就是动作脚本层。在该图层上实现题目的载入、答案的交互、成绩计算等功能。


图5多项选择测试设计


5.3动作脚本的定义

5.3.1开始帧脚本的设计

在开始帧放置脚本,判断影片是否完全载入,如果载入完毕,则转到设置帧进行初始化设置:


=_totalframes){//判断影片是否完全载入

gotoAndPlay("设置");

}

5.3.2“设置”帧脚本的设计

设置帧动作脚本的主要作用是进行变量的初始化,并载入test.txt。

right=0;

//用变量right记录答对题目数

wrong=0;

//用变量wrong记录答错题目数

view=0;

//用变量view记录用户是否查看了答案

qnumber=0;

//用变量qnumber记录已载入的题目数

eof=0;

//用变量eof记录是否将一个题目完全载入

loadVariablesNum("test.txt",0);

//将初始文本文件载入

5.3.3信息帧脚本的设计

“信息”帧的作用是测试所需的测试信息(即test.txt)是否已经载入。如果没有载入完毕,在此处循环等待;如果已经载入,则转到“测试”帧。动作脚本如下:

if(eof==1){

gotoAndStop("测试");

}


5.3.4测试帧脚本的设计

“测试”帧等待学生单击“开始”按钮,然后跳转“载入”帧播放。课件中给“开始”按钮添加了以下脚本:

on(release){

gotoAndPlay("载入");

}


5.3.5载入帧脚本的设计

“载入”帧的作用是载入试题文本文件(question1.txt—question5.txt)。此处的帧动作脚本如下:

eof=0;

qnumber=qnumber 1;

totalQuestions){

gotoAndStop("完成");

}else{

curQuestions="第" qnumber "题" "(共" totalQuestions "题)";

loadVariablesNum("question" qnumber ".txt",0);

}


5.3.6循环帧脚本的设计

“循环”帧的作用是等待载入题目文本文件。如果没有载入完毕,就在此处循环播放等待载入;如果已经载入完毕,则跳转“已载入”帧,进行当前题目的测试。本帧动作脚本如下:

if(eof==1){

//如果eof==1,则某一个题目已完全载入

gotoAndPlay("已载入");

}


5.3.7已载入帧脚本的设计

“已载入”帧的作用是显示题目供学生作答。这里的帧动作脚本如下:

question=qnumber "." q;

stop();


第一个语句的作用是构造题目,然后在动态文本框question中显示出来,stop()语句的作用是等待学生选择答案。

5.3.8成绩反馈的实现

在动画结束帧,使用了三个动态文本框(dui、cuo、chengji),用于显示测试成绩,在该帧计算成绩(按百分制)并在动态文本框显示出来,脚本如下:

myscore=int((right/totalQuestions)*100);

dui.text="你做对了" right "题";

cuo.text="你做错了" wrong "题";

chengji.text="你共得" myscore "分";

curQuestions="";

stop();

成绩反馈的界面如下:

 

图6测试题的反馈界面

6使用FLASH的模板制作多媒体的测试题

实际在,在Flash中提供了一个综合测试题模板,使用该模板也可以快速制作判断题、填空题、多项选择题、拖动填空题等,如下图示。要使用该模板,可执行“新建”—从模板新建,打开新文档对话框,选择“类别”栏的“测试”类别后,出现三个模板样式,选中其中一种样式,确定后,即可得到一个包含有多种测试类型的课件。

其主文件是一个包含8个关键帧的动画,第1帧为欢迎界面,第8帧是一个统计界面,用于统计得分情况,中间6帧分别对应拖曳、填空、热对象选择、热区选择、多选题、单选题,删除掉多余的题型对所应的帧,只保留需要的题型即可。在Interactions图层为题目创建关键帧,有多少个问题创建多少个帧。

对于测试题中的选项,可通过组件检查器,为每个实例输入参数值。

使用Flash提供的模板创建交互性的测试课件也为失为一个制作交互性课件的好方法。

 

图7使用模板创建的练习测验多选题

7结束语应用Flash的动作脚本语言,可以制作出具有良好交互性和开放性的多媒体课件,为制作交互性开放性课件提供了一种有效的途径。Fla,sh使用矢量技术制作课件,生成的文件体积小,在网上采用流式播放技术播放,可以边下载边播放,降低了对带宽的要求,“减少”了等待时间,有利于课件的网上教学和网上交流。

脚注信息
版权所有 Copyright(C)2008-2015 龙腾动画(北京龙腾创星科技有限公司) 京ICP备16063988号-3       本站关键词:flash动画制作 

 
QQ在线咨询
咨询热线
010-57477990
7*24咨询热线
13701141129