利用FLASH技术完成电子虚拟实验室设计与开发
2012-04-29姜东洋
姜东洋
摘要:针对高等职业院校电子实训教学为例设计开发完成了虚拟实验室教学系统,通过综合运用演示、分组教学、讨论等多种方法,实现帮助和促进学生实验实训的学习任务,成果基于FLASH技术开发具有较好的适切性。
关键词:FLASH虚拟实验环境ActiongScript脚本
中图分类号:G2 文献标识码:A 文章编号:1674-098X(2012)06(c)-0007-01
1 引言
虚拟实验室通过web技术和虚拟仿真技术等实现传统的教学实验室数字化和虚拟化,加强学生实际操作能力的培养,笔者结合某高职院校的电子实验课程初步设计以下系统,辅以FLASH技术,教学效果显著。
2 虚拟实验室的实现
虚拟实验室的设计要考虑到现阶段的实验室的不足和缺陷,有针对性的开发。在学生成功登录虚拟实验室之后能准确的根据相关的要求将模拟的元器件组装成为一个完整的实验系统。并在此基础上将实验的整个过程予以完成,实验用的资源是以Flash动画的形式予以实现。虚拟实验室需要实现以下目标:当登陆虚拟实验室之后,可以把实验中需要用到的模拟元材料按顺序合理拼装,完成实验系统,并且有条理的进行实验。
2.1 实验项目查询
实验项目查询模块支持学生检索系统包含的实验项目,在此可以查询每个实验项目的具体信息。
2.2 启动实训教学环节
实验活动进行主要是在“启动实训教学”环节,学生根据实验原理,准备相关元器件,并进行实验。首先要由虚拟实验资源库导出演示型FLASH实验资源,学习其中的电路设计,对于复杂部分可以重复研究,预测实验中可能出现的问题并提前设计解决方案。根据实验需要选择合适的元器件。
2.3 实训总结
学生在实验中的每个步骤都是通过实训总结予以记录。在进行电路物理量的实验过程中,学生可以边进行实验边将数据记录至实训总结报告单中,在实训报告单中还会设置相应的思考题,在题目下方留有一个文本输入框,以备学生在实验过程中总结的心得、体会记录其中,老师也可以通过小结了解学生的掌握程度,并根据学生的报告给出相应的合适的成绩。
2.4 学生信息查询
记录每位学生的详细资料和实验过程、结果,该模块用于学生查询个人实验成绩,掌握目前学习的能力水平和不足之处。
3 FLASH技术开发虚拟实验环境
下面介绍虚拟电子实验室中三种重要动作的实现过程。
3.1 实训环境中对象动态效果制作
虚拟电子实训环境是采用startdrag和stopdrag动作语句来实现环境中的元件任意拖拽来实现,但是如果在这种情况下允许元件的任意放置就会出现过多的交叉点,甚至还会出现元件相互叠放的情况。因此在编程过程中可以采取如下的解决方案以避免这种情况,具体方案如下:将一整个实验台划分成为若干个小的方格,将元件拖动至舞台是需要松开手,将元件的x、y轴坐标值与相近的方格坐标值进行判断,自动将元件的坐标设成距离最近方格的坐标,并使元件停在对应方格的顶点部位,产生一种“吸附”现象,想将相应的程序报告如下:
通过STARTDRAG、STOPDRAG动作语句可以对实验中的元件进行任意拖拽,然而元件的任意放置会有大量的连接线交叉,或者引起元件互相叠放。为了避免这种问题出现,编程时可以对实验台进行划分,
onClipEvent(mouseDown){ //鼠标按下时
if(hitTest(_-root.xmouse,_root._ymouse,false)) //限制在影片剪辑的范围内容内
{this.startDrag();} }//开始拖动影片剪辑
onClipEvent(mouseuUp){ //当鼠标松开时
if(hitTestL(_root.Xmouse,_root._ymouse,false))
{this.stopDra个();}} //停止拖动影片剪辑
3.2 FLASH完成虚拟动态连接
先后点击了两个元件的连接柱后即完成了电路元件的任意连接,连线采用正确的点击方式,相对应错误的点击方式会给出提示。在动画编程中每个按钮的动作状态是通过变量进行记录的,相关联的两个接线柱是都被按下是通过变量之间的“与关系”进行判断的,如果是都被按下则根据坐标判断两点之间的位置并执行相应的连接步骤,并使按钮状态变量复位;如果不是相关联的接线柱,则根据它们之间的具体情况复制相应的错误信息提示影片剪辑。
程序如下:
11v=O;12v=O;s11v=O;s12v=O;s21v=0: //初始化记录各按钮状态的变量
setPropercy(“tishi”,_Visible,0); //将提示错误的影片剪辑设为不可见
_root.onEnterFrame=1ianjie; //调用画线函数
Function lianjie(){//定义画线函数
if((_-root.11v==1)&&ooot.s11v==1)){//判断两个正确的接线柱是否先后被按下
x1=_root.l1._x; y1=_root.l1._y;
x2=)root.s11._x;y2=Joot._s11._y;//设置画线的起点和终点坐标值
11s11v=1: //设置记录这段线路已连接的变量值为l
If(x1<=x2){ //根据坐标判断两点之间的位置,执行相应的画线步骤
1il年estyle(2,0)axff0OOO,100); moveTo(x1,y1);
lineTo(x1+40,y1); lineTo (x1+40,y2); lineTo (x2,y2);
11v=0;s11v=0;, //按钮状态变量复位
Else(
1iIlestyle(2,0xff0000,100);moveTo(X1,y1);
lineTo(x1+40,y1); lineTo (x1+40,y2); lineTo (x2,y2);11v=O;s12v=0;}}
3.3 数据库链接
首先设置一个值赋唯恐的记录变量,在执行具体实验步骤过程中将变量赋值为“已连接”,在动画舞台上添加一个动态的文本框,在属性文本框中输入该变量名,舞台上出现“已连接”字样的时候则表明某一个实验步骤的动作结束,通过LoadVars命令,可以使用GET或POST方怯。将数据传递给ASP程序,或从AsP程序接受数据,实现实验数据的递交和实验数据的查询功能。程序如下:
t1=””; //首先设置一个记录变量,将其值赋为空
on (press){ //在实验步骤动作执行语句中给变量赋值为字符串“已连接”
_root.t1=”已连接”;}
function searchO{//定义调用asp程序的函数
10advars(”c4_-02_01.asp”,”_root.lianjie”,”GET”);