当前位置:首页 > 读后感 > 一弹簧振子作简谐振动 Flash让弹簧振子振动起来
 

一弹簧振子作简谐振动 Flash让弹簧振子振动起来

发布时间:2019-01-27 03:45:43 影响了:

  一、设计预演效果      要避免制作课件过程的盲目性,做到省时高效,最好能在制作课件前将要实现的演示效果书面化。   笔者希望通过Flash实现的效果是让小球实体在平衡位置O点左右来回振动,振动过程中作变加速运动,且弹簧实体的长度也要随之变化,给人的视觉效果就是弹簧使小球做往复运动。合力(或者加速度)实体和速度实体同步显示相关物理量大小和方向。同时,为了让课件具有交互性,并能留给学生思考研究的空间,可以通过按钮控制合力(或者加速度)实体和速度实体的显示或隐藏,还可以通过图1左下角的一系列按钮改变小球质量、弹簧的劲度系数、最大形变量(振幅)的大小,引导学生观察不同变化情况下小球的振动,进而研究小球的振动周期与哪些因素有关、有什么关系。
  
  二、素材的制作
  
  根据构思确定需要哪些素材。从图1可以看出需要两类素材:影片剪辑实体和按钮实体。其中,弹簧实体、小球实体、合力实体和速度实体属影片剪辑,需要另行分别制作。按钮实体可以直接通过“窗口 → 公用库 → 按钮”找到。
  在Flash的编辑窗口,依次打开“插入”→“新建组件”→“创建新元件”,在弹出的“创建新元件”属性对话框中,素材的性质应设成“影片剪辑”(图2)。在制作“弹簧实体”时,屏幕上的坐标原点就是中心位置,应从中心位置开始画折线,形成一个水平放置的弹簧(图3)。
  这时弹簧实体已在库中,通过“窗口 →库→ 影片剪辑”,就可以在影片剪辑列表中看到名称为“弹簧实体”的影片,将名称为“弹簧实体”的影片拖到场景中,点击工具栏左上角的箭头按钮,选中场景中的“弹簧实体”,点击工具栏右下角的缩放按钮,改变弹簧实体的大小。制作其他影片剪辑实体与制作“弹簧实体”相似,在制作小球实体组件时,要让球心与编辑窗口中的中心位置重合。制作合力实体和速度实体时,将箭头与编辑窗口的中心位置重合。
  
  三、程序设计
  
  在图4“Action”图层中设置程序。要在某一帧设置程序,需将鼠标移至该帧,单击鼠标右键弹出下拉菜单,单击“动作”选项(图5),即可进入动作设置属性对话框进行程序设置(图6)。
  
  1.主体程序
  (1) 在Action图层(图4)的第一帧设定初始参数
  x0 = 392;//图1中振子平衡位置O点的横坐标
  x1 = 532;//图1中B点的横坐标
  y0 = 88;//弹簧振子和小球实体的纵坐标
  v0 = 0;//小球的初始速度
  p1 = 74;//图1中弹簧固定点的横坐标
  zhi1 = false;
  zhi2 = false;//“zhi1”和“zhi2”是两个逻辑变量,初始布尔值是False
  m = 2000;//表示小球的质量
  k = 0.01;//表示弹簧的劲度系数
  play();
  
  (2)在第三帧设定下列参数
  t0 = getTimer();//表示获取程序执行第三帧时的时间
  m2 = x0;//合力实体的横坐标
  n2 = Number(y0)+100;//合力实体的纵坐标
  m3 = x0;//速度实体的横坐标
  n3 = Number(y0)+200;//速度实体的纵坐标
  
  (3)在第四帧设置程序
  x0 = 392;
  t1 = getTimer();
  y1 = y0;
  t = t1-t0;
  x = x1-x0;
  f = k*x/10;
  a = f/m;
  v0 = Number(v0)+Number(a*t);
  s = v0*t;
  x1 = x1-s;
  //伴随时间发生变化,可以由动力学知识和运动学知识计算出小球位置坐标,速度、位移和受力都在随时间的变化而变化。
  setProperty("/小球", _x, x1);//根据计算出的坐标确定小球应处的位置
  p = (x1-p1)/(x0-p1);
  setProperty("/弹簧", _xscale, p*100);//根据小球的位置设定弹簧实体x轴方向的放大比例,使弹簧右端随时和小球中心重合。这样给人的视觉是弹簧带动小球在振动。
  
  n = (x1-x0)/120;
  if (Number(n)>0) {
   setProperty("/合力", _xscale, n*100);
   setProperty("/合力", _x, m2);
   setProperty("/合力", _y, n2);
   setProperty("/合力1", _alpha, 0);
   setProperty("/合力", _alpha, 100);
  } else {
   setProperty("/合力1", _xscale, (x0-x1)/1.2);
   setProperty("/合力1", _x, m2);
   setProperty("/合力1", _y, n2);
   setProperty("/合力", _alpha, 0);
   setProperty("/合力1", _alpha, 100);
  }
  //将合力实体复制,把复制的合力实体水平翻转并命名为“合力1”。用这两个实体分别表示振子在平衡位置两边所受合力的方向,其长短的变化表示合力大小的变化。实体长短的变化由位移x1-x0的绝对值来决定。当振动小球位于平衡位置右边时,合力实体的alpha值设为0,即不透明,合力1实体设成透明;当小球位于平衡位置左边时,情况相反。
  if (Number(v0)>0) {
   setProperty("/速度", _xscale, v0*1000);
   setProperty("/速度", _x, m3);
   setProperty("/速度", _y, n3);
   setProperty("/速度", _alpha, 100);
   setProperty("/速度1", _alpha, 0);
  } else {
   setProperty("/速度", _alpha, 0);
   setProperty("/速度1", _alpha, 100);
   setProperty("/速度1", _xscale, v0*1000);
   setProperty("/速度1", _x, m3);
   setProperty("/速度1", _y, n3);
  }
  //关于速度的显示与上文所述合力的显示雷同。
  x1 = getProperty("/小球", _x);
  gotoAndPlay(3);//将实体小球的横坐标值赋给变量x1并返回第三帧,循环执行第四帧的程序
  
  2.交互性设置
  on (release) {
   setProperty("/合力", _visible, zhi1);
   setProperty("/合力1", _visible, zhi1);
   zhi1 = not zhi1;
  }
  //对合力实体显示与否由逻辑判断来决定。逻辑变量zhi1的值是True时,就显示合力,是False就隐藏。每按一次“显示/隐藏”按钮,逻辑值变一次,从而达到控制显示与隐藏
  on (release) {
   setProperty("/速度", _visible, zhi2);
   setProperty("/速度1", _visible, zhi2);
   zhi2 = not zhi2;
  }
  
  //对速度的显示与隐藏和合力实体的交互性设置雷同,也是由逻辑判断来决定的
  On (Release)
   Set Variable: "m" = 6000
  End On
  //小球质量变大按钮的动作设置
  On (Release)
   Set Variable: "m" = 500
  End On
  //小球质量变小按钮的动作设置
  On (Release)
   Set Variable: "k" = 0.04
  End On
  //弹簧劲度系数变大按钮的动作设置
  On (Release)
   Set Variable: "k" = 0.005
  End On
  //弹簧劲度系数变小按钮的动作设置
  On (Release)
   Set Variable: "x1" = 550
  End On
  //弹簧形变量变大按钮的动作设置
  On (Release)
   Set Variable: "x1" = 470
  End On
  //弹簧形变量变小按钮的动作设置
  On (Release)
   Go to and Play (1)
  End On
  //对复原播放按钮的动作设置
  On (Release)
   Stop
  End On
  //对暂停按钮的动作设置
  On (Release)
   Go to and Stop (5)
  End On
  //下一页按钮的动作设置
  除了上述按钮交互设置,还可以根据教学的需要把教材的练习用文本框来表示。这些文本框都可以通过输入文字达到交互的目的,以此激发学生学习兴趣。
  四、导出动画
  制作完毕,设定动画的播放速度,建议值为120帧/秒,以保证动画效果是连续的。最后需要将文件以动画形式导出,点击“文件”下拉菜单中“导出动画”选项,在弹出的保存动画中输入一个文件名并确定,这样一个以SWF为扩展名的文件便生成了。当你打开这个新文件时,就可以看到振动着的弹簧振子了。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3