function mov() { lx = n*w; btx = btx+(lx-btx)/6; this._x = Math.round(0-btx); } |
以前寫的一段代碼!其中LX為最終值,BTX為其實值,6為一個系數(shù),然后沒經(jīng)過一次移位后通過this._x = Math.round(0-btx); 來賦值. 其中的缺點就是,在圖片移動的時候,到最后幾個移位距離特別短,視覺效果上有點打折扣,這個網(wǎng)站的移動方式我就采用的這段老代碼.
這幾天我又重新研究了一下GROUP94的移動代碼,發(fā)現(xiàn)他們在這方面就精明許多,整個圖片在移動的時候效果也很幫,基本在最后的幾幀之內(nèi),它采取了一個取整的方式.
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個系數(shù)來控制整個移動方式,這樣細分就會好很多, 最后它使用了一個判斷來做一個位置的取整. 整個移動效果就會漂亮很多!
注意下,可能有許多人不太明白 MovieClip.prototype.xPOS = function(a, d) {} 什么意義,其實這斷程序的意義就是給MovieClip 加上一個自定義函數(shù),以后在影片內(nèi)的任何MovieClip 都能調(diào)用 這個函數(shù)了,不用再去重新定義!!相對新手而言拉...老鳥估計都會明白的拉!!:)