快速业务通道

三星弹性导航菜单再探详解

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10

_root.forbidname = _parent._name;
t = substring(_parent._name, 2, 1);
this.ok = 1;
if (this.dx>=20000 && _root["a"+t].pres == false) {
_parent._x = this.oldx;
_parent._y = this.oldy;
_root.dr = false;
_root["a"+t].dragging = false;
_root.forbidname = _parent._name;
_root.forbid = 0;
_root["a"+t].gotoAndStop(1);
} else {
_root.dr = true;
_root["a"+t].dragging = true;
_parent._x = _root._xmouse;
_parent._y = _root._ymouse;
_root["a"+t]._x = _root._xmouse;
_root["a"+t]._y = _root._ymouse;
}
} else {
if (_root["a"+t].pres == false) {
if (this.ok) {
_parent._x = this.oldx;
_parent._y = this.oldy;
_root.dr = false;
_root["a"+t].dragging = false;
this.ok = 0;
_root.forbidname = _parent._name;
_root.forbid = 0;
_root["a"+t].gotoAndStop(1);
}
}
}
}
}
忘了说了,就是偷懒没有多写一段代码_creatEmptyMovieClip()我直接在主场景中建立了一个空的名叫li的mc存放画的线条源文件待会再传给大家吧,明白了思路我想不用原文件一样能重新弄出来

首先补充说说弹性的原理吧:)
看看下面的代码吧: 你看首先不是弹性运动,但是我想让场景中的mc变速运动
onClipEvent (load) {
ax=0.5
vx=2
}
onClipEvent (enterFrame) {
vx += ax;
_x += vx;
}
上面的代码很简单,mc会不断加速运动,每次加速的数值由ax的量决定。
上面的理解了吧? 看过物理上的单摆运动吗?从最位移处到中点处加速度是不断的减小的,与此同时速度不断增大,不会忘记吧 ,呵呵,还应该记得,单摆运动的时候如果有阻力
振幅会不断的减小,就象我们的弹性运动!
对了,现在要做的就是改变上面代码的加速度,就象单摆运动的时候,过平衡位置
加速度变成反方向的,加速度也不断减小,怎么把上面的变量联系转化成代码呢??
很简单,将加速度与距离平衡位置的距离联系,距离越大,加速度越大,于是我们得到:
ax=(tx-_x)*k 这样就完全实现了单摆的模拟加速度,呵呵,要是这不明白我可没办法了哦:)
tx是目标位置,也就是平衡位置!!单摆最终会停在平衡位置是因为阻力,我们这里添加
一个damp和起来就是下面的东东啦:
onClipEvent (enterFrame) {
ax = (tx-_x)*k;
vx += ax;
_x += vx;
vx*=damp
}
好了,差不多收工了吧,我的代码
首先tarx-this._x计算与目标点的距离乘k转化与加速度关联
这里由于我偷懒就没出现ax了,直接乘了
this.vx += (tarx-this._x)*k;
this.vy += (tary-this._y)*k; // (tary-this._y)*k=ax相当于this.vy +=ay
this.vx = this.vx*damp;
this.vy = this.vy*damp;
this._x+= this.vy
源文件
点击浏览该文件
更多疑问参与讨论:
http://www.flash8.net/bbs/dispbbs.ASP?boardID=10&ID=71018&page=1 关键词:菜单 导航

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号