凸透镜成像基本公式(1/u+1/v=1/f)自动计算出相应的像距(v)和放大率(m)
使用startDrag()和stopDrag()函数来实现拉住的任意拖动,使用setProperty()和getProperty()函数来控制蜡烛及成像蜡烛的具体位置。
用Flash5制作“凸透镜成像”
文/李湘黔
本课件为中学物理“凸透镜成像”的动画演示,通过拖动燃烧的蜡烛,改变物距,演示物体通过凸透镜所成的像,帮助学生理解凸透镜成像的特点及规律,其制作过程为:
一、设置文件属性
新建一个Flas件,设置文件属性,动画的尺寸(640×480像素),背景颜(蓝白渐变填充)等.
二、制作燃烧的“蜡烛”动画片符号
燃烧的蜡烛是由蜡烛及燃烧的火焰组成的,其中蜡烛是一个正方形,为了使其有一定的立体效果,我们为其填充红—黄—红的渐变填充.燃烧的火焰是一个近似桃形的不规则图形,为了使其具有动态的燃烧效果,我们用5帧稍有差别的关键帧制作出一个逐帧动画.
三、创建“蜡烛—按钮”的按钮符号
我们要用鼠标拖动蜡烛,改变蜡烛与“透镜”之间的距离,从而产生不同的物像,因此我们要将上面创建的蜡烛动画作为素材,制作成按钮,才能通过按钮动作实现所需要的效果.
四、创建“蜡烛—动画”的动画片断符号
只有动画片符号实例(Instance)可以被命名,并能通过“Actions”(动作)来控制其大小、位置、透明度、旋转角度等属性,所以需要用前面创建的“蜡烛—按钮”的按钮符号制作成一个动画符号,具体步骤为:
1.插入一个名为“蜡烛—动画”的动画片断符号;
2.打开“Library”窗口,拖一个“蜡烛—按钮”的按钮符号到符号编辑窗口,选择拖入的图形,打开“Info”面板,将x值设为W值的一半,y设置为H值,拖入的实例(Instance)底部与窗口中心点对齐.
五、设置凸透镜和主光轴
单击“增加层”按钮,增加图层,用“椭圆”工具设置好凸透镜,绘制一条直线表示主光轴,在直线上画一些间距相等的点表示焦点、2倍焦点等,为了方便用“Actions”语句来控制场景中的各动画,可以把主光轴最左侧点横坐标设为66,光心x坐标设为330,x轴所在位置的y坐标设为280,焦点x坐标设为275.
六、制作凸透镜成像动画
设计原理是根据凸透镜成像的规律而定:v(像距)=(f×u)/(u-f),b(像高)=v(像距)/u(物距),具体步骤如下:
1.单击“增加层”按钮,增加图层,打开“Library”窗口,将两个“蜡烛—动画”的动画片段符号拖到该图层中,将右侧表示凸透镜所成的图像的蜡烛旋转180°,将其放在二倍焦距的
倍置上.
2.选择任一层的第一帧,为其赋予“Stop”的帧动作语句.打开“实例”(Instance)面板,选择编辑区左侧的符号实例(Instance),在“Name”框中输入“ml”.选择编辑区右侧的符号实例(Instance),在“Name”框中输入“m2”.
3.双击任意一个“蜡烛—动画”符号实例,进入“蜡烛—动画”符号编辑窗口.在蜡烛符号上单击鼠标右键,在打开的快捷菜单中选择“Actions”命令,打开“Object Actions”面板,输入如下的动作语句:
on(press){
startDrag(″/m1″,false,60,280,320,280);
m1-x=getProperty(″/m1″,-x);
rot=180
If m1-x<275{
setProperty(″/m2″,-rotation,180);
u=330-getProperty(″/m1″,-x);
f=330-275;
v=f * u/(u-f);
b=v/u;
setProperty(″/m2″,-x,330,v);
setProperty(″/m2″,-xscale,b * getProperty(″/m1″,-xscale));
setProperty(″/m2″,-yscale,b * getProperty(″/m1″,-yscale));
}
If(m1-x>275 and m1-x<320){
u=330-getProperty(″/m1″,-x);
v=f * u/(f-u);
b=v/u;
setProperty(″/m2″,-x,330-v);
setProperty(″/m2″,-xscale,b * getProperty(″/m1″,-xscale));
setProperty(″/m2″,-yscale,b * getproperty(″/m1″,-yscale));
setProperty(″/m2″,-alpha,getProperty(″/m1″,-alpha) * 0.4);
setProperty(″/m2″,-rotation,rot.180);
}
}
on(release){
stopDrag();
m1-x=getProperty(″/m1″,-x);
If m1-x<275){
setProperty(″/m2″,-rotation,rot.180);
setProperty(″/m2″,-alpha,getProperty(″/m1″,-alpha));
u=330-getProperty(″/m1″,-x);
f=330-275;
v=f * u/(u-f);
b=v/u;
setProperty(″/m2″,-x,330.v);
setProperty(″/m2″,-xscale,b * getProperty(″/m1″,-xscale));
setProperty(″/m2″,-yscale,b * getProperty(″/m1″,-yscale));
}
If m1-x>210 and m1-x<330{
u=330-getProperty(″/m1″,-x);
v=f * u/(u-f);
b=v/u;
setProperty(″/m2″,-x,330-v);
setProperty(″/m2″,-xscale,b * getProperty(″/m1″,-xscale));
setProperty(″/m2″,-yscale,b * getProperty(″/m1″,-yscale));
setProperty(″/m2″,-alpha,getProperty(″/m1″,-alpha) * 0.4);
setProperty(″/m2″,-rotation,rot.180);
}
}
4.按Ctrl+Enter键,测试动画,用鼠标任意拖动左侧的蜡烛,其成像的特点一目了然.
1 概述
凸透镜成像规律是高中阶段学习的一个重点和难点内容,当物体的位置发生变化时,物体所成像的位置、大小和形态(倒立或正立)也会同时发生变化。利用Flash MX动作脚本语言实现的强大交互功能,可实现在课件中用“蜡烛”作为实验物体,当使用者用鼠标拖动“蜡烛”时,该“蜡烛”所成的像会随之发生变化,表现真实准确的实验过程,使学生能够在较短时间内掌握凸透镜的成像规律,获得理想的教学效果。
2 制作课件场景(背景和标题)
1)在flash MX中新建一个空白文件,插入2个图层,自下而上命名3个图层为“背景”“标题”“动画”。
凸透镜成像规律是高中阶段学习的一个重点和难点内容,当物体的位置发生变化时,物体所成像的位置、大小和形态(倒立或正立)也会同时发生变化。利用Flash MX动作脚本语言实现的强大交互功能,可实现在课件中用“蜡烛”作为实验物体,当使用者用鼠标拖动“蜡烛”时,该“蜡烛”所成的像会随之发生变化,表现真实准确的实验过程,使学生能够在较短时间内掌握凸透镜的成像规律,获得理想的教学效果。
2 制作课件场景(背景和标题)
1)在flash MX中新建一个空白文件,插入2个图层,自下而上命名3个图层为“背景”“标题”“动画”。
2)用“矩形工具”,在“背景”绘制2个相同的浅蓝矩形。
3)在“标题”层输入“高中物理课件”“凸透镜成像规律”等文字。
3 制作元件
3.1 制作“火焰”元件
1)按Ctrl+F8键,在弹出的“创建新元件”对话框中,设置“名称”为“火焰”,“行为”为“影片剪辑”,单击“确定”,进入该元件的编辑窗口。
2)单击工具栏的“铅笔工具”并选择“平滑模式”;设置“笔触颜”为黑,在舞台中央绘制“火焰”图形轮廓,设置“填充样式”为“放射状”,为“火焰”图形填充红—橙渐变,最后删除火焰的边框线。如图1所示。
3)连续按F6键4次插入4个关键帧,这几个关键帧的内容与第1帧的相同;分别在第2、第3、第4、第5关键帧上使用“箭头工具”并拖动鼠标来改变火焰图形的形状,使各关键帧上火焰图形略有不同。按“Enter”键可预览火焰的动态效果。
3)在“标题”层输入“高中物理课件”“凸透镜成像规律”等文字。
3 制作元件
3.1 制作“火焰”元件
1)按Ctrl+F8键,在弹出的“创建新元件”对话框中,设置“名称”为“火焰”,“行为”为“影片剪辑”,单击“确定”,进入该元件的编辑窗口。
2)单击工具栏的“铅笔工具”并选择“平滑模式”;设置“笔触颜”为黑,在舞台中央绘制“火焰”图形轮廓,设置“填充样式”为“放射状”,为“火焰”图形填充红—橙渐变,最后删除火焰的边框线。如图1所示。
3)连续按F6键4次插入4个关键帧,这几个关键帧的内容与第1帧的相同;分别在第2、第3、第4、第5关键帧上使用“箭头工具”并拖动鼠标来改变火焰图形的形状,使各关键帧上火焰图形略有不同。按“Enter”键可预览火焰的动态效果。
3.2 制作“蜡烛”元件
1)选择“插入”→“新建元件”菜单命令,创建 一个名称为“蜡烛”的 “影片剪辑”元件。
2)单击工具栏中的“椭圆工具”“矩形工具”绘制一个圆柱形并填充“蓝—白—蓝”线形渐变,作为“蜡烛”的柱体。
3)单击工具栏中的“线条工具”,设置“笔触颜”为黑,“笔触高度”为2,在蜡烛上端绘制一条短的竖线,作为蜡烛的烛芯。
4)按F11键打开“库”面板,将库中的“火焰”元件拖到烛芯上,调整其大小,使其与蜡烛图形的尺寸相匹配,如图2所示。“蜡烛”元件制作完成。
3.3 制作“凸透镜成像”元件
1)选择“插入”→“新建元件”菜单命令,创建 名称为“凸透镜成像”的影片剪辑元件。
2)将该元件的图层1的名称改为“主轴”,再插入两个图层并分别命名为“凸透镜”“蜡烛”。选择“查看”→“标尺”菜单命令,在舞台显示水平标尺和垂直标尺。拖出一条水平辅助线,使该
辅助线与垂直标尺的0刻度线对齐;从垂直标尺上拖出5条垂直辅助线,分别对齐水平标尺上的120(左)、60(左)、0、60(右)、和120(右)刻度。
3)在“主轴”图层绘制一条与水平辅助线重合,“笔触高度”为2的黑的水平线,作为凸透镜的主轴。在主轴上标注焦距和二倍焦距(如图3所示),锁定该图层。
4) 在“凸透镜”图层绘制一个较窄的无边框的椭圆并填充“白—淡蓝”放射状渐变,作为“凸透镜”(如图4flash按钮制作所示),锁定该图层。
5)从“库”面板中,将元件“蜡烛”拖动到“蜡烛”图层,并置于舞台上凸透镜图形的左侧,在“属性”面板上设置“实例名称”为candle。
6)单击“蜡烛”图层的第2帧,在“动作”面板中,在该面板右侧的“脚本窗格”中输入以下的动作语句:
duplicateMovieClip(candle,“candle1”,1);//复制影片剪辑实例candle1
7)选中蜡烛图形,在“动作”面板中,设置编辑状态为专家模式;在该面板中编辑窗格中,输入以下动作语句:
on(press){
3)在“主轴”图层绘制一条与水平辅助线重合,“笔触高度”为2的黑的水平线,作为凸透镜的主轴。在主轴上标注焦距和二倍焦距(如图3所示),锁定该图层。
4) 在“凸透镜”图层绘制一个较窄的无边框的椭圆并填充“白—淡蓝”放射状渐变,作为“凸透镜”(如图4flash按钮制作所示),锁定该图层。
5)从“库”面板中,将元件“蜡烛”拖动到“蜡烛”图层,并置于舞台上凸透镜图形的左侧,在“属性”面板上设置“实例名称”为candle。
6)单击“蜡烛”图层的第2帧,在“动作”面板中,在该面板右侧的“脚本窗格”中输入以下的动作语句:
duplicateMovieClip(candle,“candle1”,1);//复制影片剪辑实例candle1
7)选中蜡烛图形,在“动作”面板中,设置编辑状态为专家模式;在该面板中编辑窗格中,输入以下动作语句:
on(press){
startDrag(this,false,-1000,0,-15,0);
}
on(release){
stopDrag();
}
onClipEvent(load){
f=60;
_x=-2*f;
_y=0;
}
onClipEvent(enterFrame){
with(_parent.candle1){
u=math.abs(this._x);
v=f*u/(u-f);
_x=v;
}
on(release){
stopDrag();
}
onClipEvent(load){
f=60;
_x=-2*f;
_y=0;
}
onClipEvent(enterFrame){
with(_parent.candle1){
u=math.abs(this._x);
v=f*u/(u-f);
_x=v;
if(u
_alpha=40;
_rotation=0;
}else{
_alpha=100;
_rotation=180;
}
m=math.abs(v)/u;
mk=math.sqrt(m)*100;
_xscale=mk;
_yscale=mk;
}
}
8)单击舞台左上角的“场景1”按钮,回到主场景,单击“动画”图层的第1帧然后将“库”面板上的元件“凸透镜成像”拖到舞台的中央;在“标题文字”图层的第1帧,输入文本 “请拖动蜡烛
_alpha=40;
_rotation=0;
}else{
_alpha=100;
_rotation=180;
}
m=math.abs(v)/u;
mk=math.sqrt(m)*100;
_xscale=mk;
_yscale=mk;
}
}
8)单击舞台左上角的“场景1”按钮,回到主场景,单击“动画”图层的第1帧然后将“库”面板上的元件“凸透镜成像”拖到舞台的中央;在“标题文字”图层的第1帧,输入文本 “请拖动蜡烛
进行实验”。
9)锁定各图层,保存文件,按Ctrl+Enter键,预览课件的播放效果(如图5所示),全部操作完成。
9)锁定各图层,保存文件,按Ctrl+Enter键,预览课件的播放效果(如图5所示),全部操作完成。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论