金宜亮
摘要:随着信息技术的迅猛发展,多媒体技术在教育教学上的应用变得越来越广泛,也越来越重要。互联网上有关画简谐运动图像的课件由于所用的脚本多为as1.0脚本,十分落后于flash脚本语言的发展,在编程上显得繁琐,交互性也不强,而且绘图过程也不真实。鉴于此,本文讲述了用最新的flash脚本语言——as3.0脚本语言,制作绘制弹簧振子的简谐运动图像的过程和方法以及利用本课件师生如何进行课堂交互和探究学习的flash课件的方法。
关键词:flash课件;as3.0脚本;交互;探究
中图分类号:TP37 文献标志码:B 文章编号:1674-9324(2012)01-0205-02
随着信息技术的发展,多媒体教学越来越受到老师们的喜爱。而flash,因为其设计制作的课件具有交互性强、界面美观、形象生动等特点也成为老师们的至爱,我在学习flash脚本时,曾经在网上发现了一个绘制简谐运动振动图像的课件,发现其脚本是as1.0的,一个并不复杂的动画,分布在各处的代码足足有五六百行,而且交互性并不好,动画也不太真实。我根据自己上课的需要,用最新的flash cs5软件和as3.0脚本设计制作了一个画弹簧振子做简谐运动的振动图像并可以进行课堂探究、交互性较强的课件。下面我将设计思路和设计过程和大家分享,不当之处请各位老师批评指正。
一、教学需求分析
课件能实时绘出做简谐运动的振动图像;课件应能通过键盘输入数字,改变玻璃板的运动速度;课件应能对比在玻璃板以不同速度运动时,振动图像的区别,并进行探究分析;课件还应具有清除所画图像以及玻璃板可拖动的功能等。
二、界面部分的制作
1.启动flash cs5,新建flash3.0文档。设置文档大小为800px×600px,背景色为蓝色0x669900,帧频为24.
2.在场景图层1上新建三个影片剪辑元件。轻质弹簧、振子和玻璃板,分别命名为tanhuan、zhenzi和paper。
3.新建图层2,从公用库—按钮里拖出三个按钮,放到图层2合适的位置。分别命名为start_btn,clear_btn,stop_btn,用来控制播放和进行交互。
4.新建图层3,在图层3上用文本工具拉出一个输入文本框,将框命名为v_txt。
5.制作一个课件使用说明的影片剪辑,命名为shmwz,再画一个按钮元件,取名为shum_btn,也拖到舞台上。
至此,舞台上的演员已经布置完毕,下面就轮到as3.0脚本大显身手了,它可实现动作和交互。
三、flash脚本的编写
首先新建图层4,将该图层改名为as。下面的脚本代码全部写在as图层的第一帧上。(当然你也可以把代码写在外部的as类文件上)为便于读者读代码,我在代码上加了一些必要的注释。
var pp:Point=new Point();
var pp1:Point=new Point();
var line:Shape=new Shape();
var p:Point=new Point();
var t:Number=0;
var flag:Boolean=false;
paper.oldy=paper.y;
paper.oldx=paper.x;
tanh.Width=tanh.width;
mc.oldx=mc.x;
mc.oldy=mc.y;
start_btn.addEventListener(MouseEvent.CLICK,onstart);
clear_btn.addEventListener(MouseEvent.CLICK,onclear);
function onstart(e){
paper.addEventListener(Event.ENTER_FRAME,paperframe);
mc.addEventListener(Event.ENTER_FRAME,mcframe);
addEventListener(Event.ENTER_FRAME,frame);
}
//清除所画图线
function onclear(e){
removeEventListener(Event.ENTER_FRAME,frame);
mc.removeEventListener(Event.ENTER_FRAME,mcframe);
paper.removeEventListener(Event.ENTER_FRAME,paperframe);
init();
flag=!flag;
flag?line.graphics.clear():0;
}
function frame(e)
{
p.x=mc.x;
p.y=mc.y;
var p1:Point=paper.globalToLocal(p);
line.graphics.lineTo(p1.x,p1.y);
paper.addChild(line);
}
function mcframe(e){
t+=0.15;
mc.x=mc.oldx;
mc.x=paper.x+60*Math.sin(t);
tanh.width=mc.x-tanh.oldx;
}
function paperframe(e)
{paper.y+=v;
if (paper.y> paper.height/2)
{
paper.removeEventListener(Event.ENTER_FRAME,paperframe);
}}
好,脚本到此结束。右侧两图是课件运行时的两幅截图。有了as3.0脚本,课件的交互性更强了,课件也更有“魂”、更有“神”了。