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