現(xiàn)在的網頁上常常見到圖片組的連續(xù)滾動效果,如果你掌握了AS的基礎知識,也能做出這樣的效果,如果你想學,那么跟我來吧!
由于源碼中只有一幀,所以就不貼圖示了,
圖片組的連續(xù)滾動效果
。主要的東東是一個圖片MC,實例名是“m”。制作步驟是這樣的。先把一組圖連起來,組合,相對舞臺選擇水平和垂直居中,再復制兩個圖片組合,分別放在兩側銜接好。新建一個MC,把圖片MC(實例名為“m”)放進去,相對舞臺選擇水平和垂直居中,不做別的處理。給這個MC起實例名為“mc”。接下來該寫代碼了,在實例名為“mc”的剪輯上加如下代碼:
如果你是老鳥,那你順一遍就明白了;如果你是菜鳥,下面有逐行的解釋:
onClipEvent (enterFrame) {
this.m._x += (_root._xmouse-275)/10;
_root.aa = int(this.m._x);
if (this.m._x>862.4) {
this.m._x = this.m._x-862.4;
}
if (this.m._x<-862.4) {
this.m._x = this.m._x+862.4;
}
}
onClipEvent (enterFrame) {
ty=this._yscale;
newy=ty+(_root._ymouse-200)/30;
if (newy>150) {
newy=150;
}
if (newy<80) {
newy=80;
}
this._xscale=newy;
this._yscale=newy;
}
//*----------------------------------
onClipEvent (enterFrame) {
this.m._x += (_root._xmouse-275)/10;//因場景是550,所以中心是275,實例m的X坐標遞加(_root._xmouse-275)/10;當鼠標在中心右側時,(_root._xmouse-275)/10為正值,所以向右滾動;如果+=改成-=就成了鼠標在右側時,向左滾動,
電腦資料
《圖片組的連續(xù)滾動效果》(http://www.oriental01.com)。_root.aa = int(this.m._x);//測試用的,我的習慣
if (this.m._x>862.4) {
this.m._x = this.m._x-862.4;// 862.4是實例m里的一個圖片組的寬度。如果大于此值,說明實例m已經移動了一個圖片組的長度,讓this.m._x減去862.4,等于是回到了原位;以此來實現(xiàn)循環(huán)滾動。
}
if (this.m._x<-862.4) {
this.m._x = this.m._x+862.4;//大致的解釋參考上面的
}
}
//*---------------------------
onClipEvent (enterFrame) {
ty=this._yscale;//取得實例mc的Y方向比例值
newy=ty+(_root._ymouse-200)/30;//因場景高度是400,所以中心是200;當鼠標在中心上面時,縮小,當鼠標在中心下面時,放大。
if (newy>150) {
newy=150;//不能無限的放大,要限制一下
}
if (newy<80) {
newy=80;//同上
}
this._xscale=newy;//X方向比例值
this._yscale=newy;// Y方向比例值
}
需要總結一下嗎?我覺得主要的技術在于MC的嵌套上,對內部的MC做滾動,對它本身做縮放,互不影響,這應該是本例的重點技術。至于基它的就是些變量、賦值、判斷條件等。補充一下,如果你要縮小的比例<80,可能會碰到問題,因為你縮小后可能會不夠長度,連貫不起來。這時你可以在三組圖的兩側再增加兩個圖片組,相應的this.m._x = this.m._x-862.4改成this.m._x = this.m._x-2*862.4,this.m._x = this.m._x+862.4改成this.m._x = this.m._x+2*862.4,應該就完成了。這是本例的又一特點:可擴展性。如果你理解不了,我給畫個示意圖:
下載源文件