Flash中的移动方程

2010-08-28 10:49:01来源:西部e网作者:

    最近正好帮人家做一个图片的翻页的FLASH,所以重新研究了一下FLASH中图片的方式代码!以前自己写过一些,不过滚动的效果不是太好,基本的原理就是取起始值与最终值之间的差值,然后除以一个移动系数的方式来写!
function mov() {
  lx = n*w;
  btx = btx+(lx-btx)/6;
  this._x = Math.round(0-btx);
 }

    以前写的一段代码!其中LX为最终值,BTX为其实值,6为一个系数,然后没经过一次移位后通过this._x = Math.round(0-btx);  来赋值.  其中的缺点就是,在图片移动的时候,到最后几个移位距离特别短,视觉效果上有点打折扣,这个网站的移动方式我就采用的这段老代码.
 
    这几天我又重新研究了一下GROUP94的移动代码,发现他们在这方面就精明许多,整个图片在移动的时候效果也很帮,基本在最后的几帧之内,它采取了一个取整的方式.

MovieClip.prototype.xPOS = function(a, d) {
 this.xD = this.ePY-this._x;
 this.xA = (this.xD/a+this.xA)/d;
 this._x = this._x+this.xA;
 if (Math.abs(this.xA)<0.500000 && Math.abs(this.xD)<0.500000) {
  this.xD = this.xA=0;
  this._x = this.ePY;
  this.xCTV = false;
 }                 
}; 

    其中this.ePY 为最终值,xD为2点之间的位移,然后它是通个2个系数来控制整个移动方式,这样细分就会好很多, 最后它使用了一个判断来做一个位置的取整. 整个移动效果就会漂亮很多!

    注意下,可能有许多人不太明白 MovieClip.prototype.xPOS = function(a, d) {} 什么意义,其实这断程序的意义就是给MovieClip  加上一个自定义函数,以后在影片内的任何MovieClip 都能调用 这个函数了,不用再去重新定义!!相对新手而言拉...老鸟估计都会明白的拉!!:)

关键词:Flash

赞助商链接: