Flash实例剖析:单摆
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-14
这是一个我们在中学学习物理的时候都很熟悉的一个东西:单摆。 用鼠标拖绳子下面的小球然后释放,小球就会来回做自由摆动。 用鼠标按小球下面的红色按钮可以让小球停下来在最初的位置。 首先讲一下实现原理:做一个MC,再在这个MC里面放一个子MC,同时给这个子MC加上一段控制其属性的AS代码,比如在这个单摆实例中就是让AS控制MC的rotation属性(旋转角度)的变化来实现的。MC循环播放AS就循环执行,从而实现连续的运动。 接下来我们]进入制作阶段,学习怎样制作这个单摆,大家也不妨先自己思考一下自己的做法。 本实例的组件结构图 1、设置场景属性(Ctrl+M)。如下图所示: 主要设置movie的播放速度为20fps。如果低于这个数值太多就会使做出来的单摆摆得太慢,而且看起来不连贯;如果高于这个数值太多做出来的单摆会摆得太快。 ? 2、摆球的制作。新建一个球形按钮,取名:Ballbutton,如下图所示: ? 3、为摆球按钮添加控制代码。新建一个MC,取名:Ballbutton Clip,在场景中把按钮Ballbutton拖入,同时在按钮上加上下面的AS。 on (press) { _parent._parent.move = true; } //当鼠标在按钮上按下时把它的上一级MC的上一级MC中的一个变量"move"赋值为true on (release, releaseOutside) { _parent._parent.move = false; } //当鼠标在按钮上释放或者从按钮上移出时把它的上一级MC的上一级MC中的一个变量"move"赋值为false 4、制作吊链。新建一个MC,取名:Ball and Line。在场景中画一条直线 ,其属性为:W:0;H:128;X:0;Y:0; 线型如图中红色圆圈所示,采用这样的线型可以更好的表现出链子的形状。 然后在“绳子” 的下面把组件 Ballbutton Clip拖进来并赋予一个实例名:button,如下图所示: ? 5、阴影的制作。新建一个MC,取名shadow。如下图所示: ? 6、摆动的实现和控制。新建一个MC,取名:Ball System。在场景新建三个层: Action,Ball,,Shadow。 在Ball层,把组件Ball and line拖入到场景中,并赋予一个实例名:ball。 在Shadow层,把组件Shadow拖入到场景中如下图所示:并赋予一个实例名:Shadow。 ? 分别在Ball层和Shadow层的第三帧插入帧,在Action层上的第一,二,三帧上插入关键帧。 ◆、在Action层的第一帧上加上AS代码如下: ball._rotation = rotation;//初始化ball的_rotation属性值; to_rad = Math.PI/180;//数学中1π=180度,在这儿设置to_rad为一度所表示的弧度值; ◆、在Action层的第二帧上加上AS代码如下: if (move == true) { x = Math.max(Math.min(_xmouse, 128), -128); //设置单摆当前的水平位置;128就是前面链子的长度; rotation = (Math.asin(-x/128)/Math.PI)*180; //设置单摆的旋转角度 rot_vel = (rotation-old_rotation)/6; } else { rotation = rotation + rot_vel; //旋转角度累加; rot_vel? = rot_vel?-?rotation/90; } //下面代码使绳子、球和阴影运动 if (old_rotation != rotation) { ball._rotation = rotation; //设置球体和绳子的旋转角度“ball”就是球体和绳子构成的MC组件的实例名; sin_value = Math.sin(rotation*to_rad); shadow._x = -160*sin_value; //由于阴影在水平方向的移动距离比球体的移动距离大,所以设置为160; if (rotation<(last_rotation-5) or rotation>(last_rotation+5)) { ball.button._rotation = -rotation*0.75; //设置绳子下面的球体在运动时的旋转角度 scale = 100+Math.abs(sin_value)*100; //设置阴影的大小 shadow._xscale = scale; shadow._yscale = scale; last |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 闪亮惊喜:Swift3D V3新功能剖析下一篇: Flash制作可拖动的下拉菜单
关于Flash实例剖析:单摆的所有评论