Flash動態緩沖圖片導航制作詳解_Flash教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Photoshop與Flash合作制作模糊漸變動畫在一些片頭動畫里我們經常能看到很炫的模糊效果,極具視覺沖擊。高質量的模糊效果大多利用Photoshop處理后才導入flash中進行制作。其實,在Flash中也可以利用其
緩沖公式在制作特效中非常有用,聞名的三星導航菜單就用到了此公式,F在許多網站出盡風頭,其中緩沖導航是其一大亮點。本文以一德國網站的導航為例,詳解緩沖導航的制作。這個效果是我和溶劑共同完成的,他提供坐標的算法,我提供縮放的算法。
本例效果演示
鼠標劃過的部分圖片會變大
制作思路
- 圖片縮放控制
利用緩沖公式設置圖片的縮放比例,假如鼠標滑過某圖片,放大1.8倍。假如其它圖片的序號與此圖片的序號相差1,就是此圖片兩邊的圖片,放大1.4倍,其它的為原始大小。 - 圖片坐標控制
當某圖片放大時,相鄰的圖片的坐標等于此圖片的坐標加上這兩張圖片的寬度的一半,實現圖片無間距排列。 - 線條和文字控制
線條用畫線函數實現,文字的坐標和縮放比例與對應的圖片相同。
制作過程
1、啟動Flash,新建一個影片,設置影片大小為600px*200px。
預備好如圖中的素材,圖片的實例名分別為zjs0到zjs4,文字的實例名分別為z0到z4。
把中間的圖片坐標設為(300,130),選中全部的圖片,按CTRL+K調出排列面板,設置為頂部對齊,使圖片的y坐標相同,圖片的x坐標通過AS來控制。用同樣的方法使方字的y坐標相同,并調整好文字和圖片的間距。
2、在主場景中的第一幀上添加下列代碼
//獲取中間圖片的x坐標 for (var i = 0; i<5; i ) { this["zjs" i].n = i; //每個圖片MC下定義一個變量 this["zjs" i].onRollOver = function() { control = true; //鼠標滑過圖片時為真 }; this["zjs" i].onRollOut = function() { control = false; //鼠標移出圖片時為假 }; } onEnterFrame = function () { for (var k = 0; k<5; k ) { this["z" k]._x = this["zjs" k]._x; // 說明文字的x坐標等于本應圖片的x坐標 this["z" k]._xscale = this["zjs" k]._xscale; this["z" k]._yscale = this["zjs" k]._yscale; // 說明文字的縮放比例與圖片相同 } if (control) { mouse_in(); } else { mouse_out(); } // 條件真或假時調用函數 }; //坐標設置函數 function setX() { for (var k = -2; k<3; k ) { this["zjs" (k 2)]._x = myx this["zjs" 2]._width*k; //以中間圖片為準無間距排列 } for (var k = Number(temp1) 1; k<5; k ) { //temp1為縮放比例最大的圖片下的變量值 var mc1 = this["zjs" k]; var mc2 = this["zjs" (k-1)]; //此圖片右邊的其它圖片 mc1._x = mc2._x (mc2._width mc1._width)/2-1; //設置這些圖片的x坐標,1為消除圖片間的空隙 } for (var k = Number(temp1)-1; k>-1; k--) { var mc1 = this["zjs" k]; var mc2 = this["zjs" (k 1)]; mc1._x = mc2._x-(mc2._width mc1._width)/2 1; } //縮放比例最大的圖片的左邊的圖片的x坐標設置 myLine(); //圖片下方的線條 } //比例縮放函數 function move_scale(x, obj) { speed = (x-obj._xscale)*.65 speed*0.6; obj._xscale = speed; obj._yscale = speed; //緩沖公式,x為圖片的縮放比例,obj為MC } //鼠標滑過圖片時,圖片的縮放、x坐標設置函數 function mouse_in() { for (var i = 0; i<5; i ) { var mc = this["zjs" i]; //獲得實例名 if (mc.hitTest(_xmouse, _ymouse, true)) { move_scale(180, mc); //假如鼠標位于圖片的上方,圖片放大1.8倍 temp1 = mc.n; //把此圖片下的變量賦給變量temp1 } else if (Math.abs(mc.n-temp1) == 1) { move_scale(140, mc); //兩側的圖片比例放大1.4倍 } else { move_scale(100, mc); //其它的圖片為原始大小 } } setX(); //設置圖片的x坐標 } //鼠標移出圖片時,圖片的縮放、x坐標設置函數 function mouse_out() { for (var i = 0; i<5; i ) { move_scale(100, this["zjs" i]); //縮放比例為1,恢復原始大小 } setX(); //坐標復原 } //線條函數 function myLine() { createEmptyMovieClip("line", 1); //創建一個空影片 with (line) { lineStyle(0.1, 0xff9933, 100); moveTo(zjs0._x-zjs0._width/2, zjs0._y 10); lineTo(zjs4._x zjs4._width/2, zjs4._y 10); //圖片下方水平的直線 moveTo(zjs0._x-zjs0._width/2, zjs0._y 5); lineTo(zjs0._x-zjs0._width/2, zjs0._y 15); //右邊垂直的直線 moveTo(zjs4._x zjs4._width/2, zjs4._y 5); lineTo(zjs4._x zjs4._width/2, zjs4._y 15); //左邊垂直的直線 } }
分享:Flash實例教程:星星跟我走實例說明在FlashMX當中鼠標的跟蹤的制作方法有很多種,為你介紹其中的一種可以有多種變化方式的鼠標跟蹤。讓星星緊隨你的鼠標轉動。有關知識繪制實例,star
/所屬分類:Flash教程/更新時間:2008-03-05
相關Flash教程:
- 相關鏈接:
- 教程說明:
Flash教程-Flash動態緩沖圖片導航制作詳解
。