FLASH中的物理世界(3)
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-14
五:抛物运动 抛物运动是物体受外力开始运动后,没有再受到外力的作用,其水平运动和垂直运动是彼此独立的。不考虑空气阻力的影响,水平方向的运动是匀速直线运动,垂直方向的运动是自由落体运动,(如图) 此主题相关图片如下: 下面我们试着用程序来模拟平抛运动 效果: 点击浏览该Flash文件: 步骤: 1新建文件800*400像素其他的默认; 2"ctrl"+F8,创建一个影片剪辑,名称“MC” 3回到主场景,"ctrl"+L打开库面版,把刚创建的影片剪辑拖入到舞台, 4选中这个MC,打开对齐面版,相对于舞台---左对齐----底对齐,绑定代码: onClipEvent(load){//MC被加载时,只运行一次 x0=_x; y0=_y;//初使位置 v=0; //球的速度 rad=0;//球的角度,初使值为0 t=0;????????//运动时间 dragtime=0; //小球开始拖动的时间; isdrag=0; //判断球是否被拖动的变量; isout=0;//判断球是否抛出去了 g=-0.098;//地心的引力常量 } onClipEvent(mouseDown){//当鼠标按下 if(hitTest(_root._xmouse,_root._ymouse,true)){//判断鼠标是否和小球接触 ??isdrag=1;//如果接触的话,就返回isdrag的值为1,目的只是用来做记号,告诉后面的程序执行相关的事件; ??isout=0; ??v=0; ??rad=0; ??this.startDrag();//开始拖动 ??dragtime=getTimer();//获得拖动的时间 ??} } onClipEvent(mouseUp){//松开鼠标 if(isdrag==1){ ??isdrag=0; ??isout=1; ??t=1; ??rad=Math.atan2(_y-y0,_x-x0);//弧度为单位计算并返回 y/x 的反正切 ??v=Math.sqrt((_x-x0)*(_x-x0)+(_y-y0)*(_y-y0))/(getTimer()-dragtime); ??//勾股定理,再用公式:v=s/t求出速度; ??this.stopDrag();//停止拖动 } } onClipEvent(enterFrame){//进入贞,MC的Frame不断运行 if(isout==1){ ??_x+=v*Math.cos(rad)*t; ??_y+=v*Math.sin(rad)*t-(g*t*t)/2;//见图解(平抛运动的公式) ??t++;//t=t+1; ??if(_x>800 or _y>400 ){//如果超出舞台的范围,就重设置MC的位置 ?? isout=0; ?? _x=x0; ?? _y=y0; ??} } } //补充:由于抛物运动把时间计算在内的,所以不能单*enterFrame时事件改变小球的位置 加入变量“t”,每次触发enterFrame事件时,代表一个单位的时间变化,我这里用的是12.0fps 点击浏览该文件 补充:抛运动中的竖直上抛运动 物体以一定初速度沿竖直方向,向上抛出后,只受重力作用下的运动。 竖直上抛运动可分为两个阶段来,一个是上升过程,这时它的初速度和 重力加速度g方向相反,是匀减速直线运动。上升到最高位置的时候,末速度为零, 因此这个时候,物体开始作自由落体运动 //这里就只补充程序几个思路吧,就不用物理公式来做了,原理是一样的 步骤: 1新建文件550*400像素其他的默认; 2"ctrl"+F8,创建一个影片剪辑,名称“MC” 3回到主场景,"ctrl"+L打开库面版,把刚创建的影片剪辑拖入到舞台, 4选中这个MC,绑定代码: onClipEvent (load) { ????t = 0; ????a = 1; ????v0 = 10; } onClipEvent (enterFrame) { ????_y??= (_y + ((a * t) - v0));//不难看出,随着(a*t)的增加,_y的值也不断增加 ????t++; } 点击浏览该FLASH文件: 点击浏览该文件 斜抛运动: onClipEvent (load) { ????t = 0; ????a = 1; ????v0 = 10; } onClipEvent (enterFrame) { ????_x??= (_x + v0); ????_y??= |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 写字效果的教程下一篇: Flash MX2004入门与进阶实例--动画基础(16)
关于FLASH中的物理世界(3)的所有评论