flash 做波的传播时遇到的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:07:27
具体源文件在http://www.800disk.net/?flash(如遇要密码为:123456)
哪为大虾帮我看问题在哪,
我希望的结果是波开始后一直动下去,流畅的动下去。像第一个球那样,而不是像后面的又跳回到第一针开始放。。。
帮我解决了追加50分哦~
我只看了点flash视频教程,所以不怎么懂,各位大虾多帮忙啊~

一.思路分析

从机械波的形成过程来看,它是由于振动质点通过相互作用力带动与之相邻的质点,通过相邻的点把振动形式传播出去从而形成机械波,这样就必须解决两个问题:

1、每一个质点都按照y=Acos(ωt+φ)的规律振动

2、不是所有的点都同时开始动的,他们有一定的相位差,靠近波源的点先振动。

二、实现方法

这里我只介绍横波的模拟动画。要使得质点振动,我们只需使它的y方向的位移按规律y=Acos(ωt+φ)变化即可,可以用这样的语句实现

this._y=y0+r*Math.cos(j*Math.PI/180+m)

说明:y0是平衡位置的y坐标,所有点的y0都是一样的,ω写成Math.PI/180,是把角度换成弧度制,

三.制作步骤

1、绘制质点小球(电影剪辑)。

进入主场景,选中椭圆工具,设置渐变色,如图1,按住Ctrl键和鼠标左键,在主场景中画出一个小球。

选中小球,单击鼠标右键,选择[转换为元件】(或按F8),在弹出的对话框中选择影片剪辑,注册点选在中间,单击【确定】按钮把小球转换为电影剪辑如图2

选中小球,打开右下角的它的属性面板,命名为my_mc如图3

2.实现小球的运动

选中小球,打开下方的动作面板,输入脚本, 如图4

下面我把这段代码作简单解释:

onClipEvent (load) {}表示当剪辑显示在时间轴上时,k、r、y0被初始化,其中k的初始化可能会比较难理解,它是把该电影剪辑的名字作为它的值的,而它的名字到底又是什么呢?后面会讲到,它的名字实际上分别是0到N的整数,这样做的目的何在呢?请往下看:

onClipEvent (enterFrame) {}是当剪辑显示在时间轴上后,一直重复做的事情

那就是k不断被减2(可以任意数),再用一个if语句判断,如果k<=0成立,开始执行语句this._y = y