用Flash MX动态显示“牛顿草图”

2004-04-29 00:44朱龙青
中小学信息技术教育 2004年2期
关键词:文本框初速度椭圆

朱龙青

在高山上用不同的水平初速度抛出物体。若初速度一次比一次大,物体落地点就一次比一次远;当初速度足够大时,物体就再也不落回地面,而是做以地心为一个焦点的不同轨道的椭圆(或圆)运动。当物体向近地点(或远地点)运动时,物体的速度将变大(或变小)。用Flash MX动态显示上述“牛顿草图”时,可以在动态文本框中呈现不同时刻物体的速度变化。

本课件有助于学生形象而直观地领悟牛顿有关人造天体的科学设想,理解开普勒定律以及人造卫星原理(图1)。

一、布置舞台

运行Flash MX新建文档,将文档属性设定为宽550像素、高450像素,帧速40帧/秒,背景为灰色。

二、建立库物件

打开库,新建一个名为dq的电影剪辑(图2),利用绘图工具绘制一个灰白辐射色的球代表“地球”。打开信息面板设定“地球”的半径为54像素(图3),以便显示及编程。

新建一个名为wx的电影剪辑,利用绘图工具绘制一个红辐射色的球代表“卫星”,打开信息面板设定“卫星”的半径为6像素。

新建一个名为di 的电影剪辑,利用绘图工具绘制一个蓝色的圆代表轨迹“点”(通过复制轨迹“点”描绘“卫星”的运动轨迹),打开信息面板设定轨迹“点”的半径为1像素。

新建一个按钮,取名为Button,利用绘图工具在其第一帧绘制一个红色正方形(其边长为43像素),并在第四帧插入一个帧,完成按钮制作。到此完成所有库物件的制作。

三、组织场景

回到场景,在时间线上(从下到上)共建七层(图4),分别将各层命名为“地球”、“卫星”、“点”、“开始暂停”、“复位”、“文本”、“actoin”。

单击“地球” 层的第一帧后,把库中的“dq”拖到场景中。打开信息面板,将地心的坐标设为(300,220);单击“卫星”层的第一帧后,把库中的“wx”拖到场景中,将“卫星”的坐标设为(364,220);单击“点”层的第一帧后,把库中的“di”拖到场景中,把轨迹“点”的坐标设为(364,220);单击“开始暂停”层的第一帧后,把库中的“button”拖到场景中右边的适当位置,并在此按钮的上方输入文字“开始”作为控制开始播放的按钮;在该层的第二帧插入一个关键帧,把库中的“button”拖到场景中“开始”按钮的上方适当位置,并在其上输入文字“暂停” 作为控制课件暂停播放的按钮;在复位层的第二帧插入一个关键帧,把库中的“button”拖到场景的右边“开始”按钮的同一位置上(这样使课件播放时只显示这两个按钮中的一个),并在其上输入文字“复位”作为控制课件回到原始状态。

单击“文本”层的第一帧后,利用文字工具绘制一个文本框(宽48像素,高30像素)放在舞台的右上角(“暂停”按钮的上方)适当位置,在此文本框的上方输入“v(km/s)”,制成一个用以显示卫星瞬时速度的动态文本框。同理,绘制一个同样的文本框放在上述文本框的上方,在此文本框的上方输入“vo(km/s)”,制成一个用键盘输入卫星水平初速度的输入文本框。

在场景中选中“卫星”后,打开属性面板,在实例名中输入字母wx(图5);选中轨迹“点”后,在实例名中输入字母di;选中输入文本框后,把文本类型设定为输入文本,下方输入字母t1,并在变量名中也输入字母t1(图6);选中动态文本框后,把文本类型设定为动态文本,下方输入字母t2,并在变量名中也输入字母t2。注意文本类型不能设定错,变量名也不能不输入,否则程序将不能传递变量。

四、编写脚本

(1)选中舞台上的“开始”按钮,单击动作面板写入代码:

on (release, keyPress "") {

if (t1<0) {

stop();

t1 = "";

t2 = "";

} else {

vo = t1/100;

gotoAndPlay(2);

}

}

//若输入速度小于0,不播放,否则按“开始”按钮,或Enter键,把输入的初速度赋予vo并跳转到第二帧播放

(2)单击“开始暂停”层的第二帧,选中舞台上的“暂停”按钮写入代码:

on (release) {

stop();

}

//按“暂停”按钮则停止播放

on (keyPress "") {

play();

}

//按“Enter”键则继续播放

(3)单击“复位”层的第二帧,选中舞台上的“复位”按钮写入代码:

on (press) {

gotoAndPlay(1);

}

//按“复位”按钮回到第一帧。

(4)action层的第一帧,写入代码:

stop();

fscommand("fullscreen", "true");

//命令全屏播放

t = 0;

//时间归0

j = 0;

//极角归0

t1 = "";

//输入速度归0

t2 = "";

//动态速度归0

r = 64;

//极径初始值(卫星距地心的初始距离)

setProperty("di", _x, 364);

setProperty("di", _y, 220);

//轨迹点的起始坐标

setProperty("wx", _x, 364);

setProperty("wx", _y, 220);

//卫星的起始坐标

(5)action层的第二帧插入一个关键帧,写入代码:

t = t+dt;

dt = 15;

//dt为运动时间的步长

n = n+1;

//轨迹点的个数自动增加

ro = 64;

//代表卫星的起始高度64百千米

h = ro*vo;

//卫星椭圆运动的角动量大小不变

p = h*h/d;

//卫星椭圆轨迹方程的半正焦弦

e = Math.pow((1+h*h/d/d*(vo*vo-2*d/ro)), 0.5);

//卫星椭圆轨迹方程中的离心率e(且0

d = 64*64*0.000098;

if (t1 == 0 && t<=452) {

setProperty("wx", _x, 300+ro-0.5*0.000098*t*t);

setProperty("wx", _y, 220);

//卫星自由下落动态坐标,t<=452表示落到地面以前运动

setProperty("di", _x, 300+ro-0.5*0.000098*t*t);

setProperty("di", _y, 220);

//轨迹点动态坐标

r = getProperty("wx", _x)-300;

t2 = 0.0098*t;

}

//在动态文本框显示卫星的瞬时速度(单位为千米/秒),若输入初速度vo=0,卫星在x方向位移x=0.5gt*t,共运动10千米,速度近似用v=gt计算,单位分别是千米、千米/秒

if (t1>0 && t1<=7.9 && r>=54) {

j = j+dt*h*Math.pow(r, -2);

//j为卫星椭圆运动的极角,由角动量守恒r*r*dj/dt=h得dj=dt*h/r*r

r = p/(1-e*Math.cos(j));

//卫星椭圆运动的极径。注意,随着初速的增大,相对于舞台的椭圆的右焦点逐渐向左移(左焦点即地心不动)t1=7.9时,左右焦点重合,t1>7.9后左右焦点将交换位置,理解这点很重要!

setProperty("wx", _x, 300+r*Math.cos(j));

setProperty("wx", _y, 220+r*Math.sin(j));

setProperty("di", _x, 300+r*Math.cos(j));

setProperty("di", _y, 220+r*Math.sin(j));

//输入速度小于第一宇宙速度时,卫星及轨迹点的动态x、y坐标, r>=54表示落到地面就停止运动

t2 = 100*Math.pow(vo*vo-2*d*(1/ro-1/r), 0.5);

}

//在动态文本框显示卫星的瞬时速度,单位为千米/秒

if (t1>7.9 && t1<=11.2) {

j = j+dt*h*Math.pow(r, -2);

r = p/(1+e*Math.cos(j));

//由于卫星的初速大于7.9千米/秒后,左右焦点已交换位置,为确保都过起点,式中e已改为-e

setProperty("wx", _x, 300+r*Math.cos(j));

setProperty("wx", _y, 220+r*Math.sin(j));

setProperty("di", _x, 300+r*Math.cos(j));

setProperty("di", _y, 220+r*Math.sin(j));

//输入速度大于第一宇宙速度小于第二宇宙速度下,卫星及轨迹点的动态x、y坐标

t2 = 100*Math.pow(vo*vo-2*d*(1/ro-1/r), 0.5);

}

if (n<=5000) {

duplicateMovieClip("di", "di"+n, n);

}

//轨迹点不能复制太多(限制在5000个以内)否则影响播放速度,当然也可以少点。

(6)action层的第三帧插入一个关键帧,写入代码:

gotoAndPlay(2);

//跳转到第一帧循环播放。

最后在各层(除action层之外)的第三帧分别插入一个插入帧,这样整个动画创建完毕。

猜你喜欢
文本框初速度椭圆
Heisenberg群上由加权次椭圆p-Laplace不等方程导出的Hardy型不等式及应用
例谈椭圆的定义及其应用
巧用文本框实现PPT多图片排版
PPT文本框的另类应用
一道椭圆试题的别样求法
AGPM控制系统分析及最适初速度优化算法研究
椭圆的三类切点弦的包络
匀变速直线运动的速度与位移的关系
关于瓦斯放散初速度实验留样再测的探讨
文本框酷变3D效果