天才教育網(wǎng)合作機(jī)構(gòu) > 設(shè)計(jì)軟件培訓(xùn)機(jī)構(gòu) > Flash培訓(xùn)機(jī)構(gòu) >

東莞設(shè)計(jì)培訓(xùn)網(wǎng)

歡迎您!
朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:設(shè)計(jì)軟件培訓(xùn)資訊 > Flash培訓(xùn)資訊 > Flash變速滑動(dòng)菜單剖析

Flash變速滑動(dòng)菜單剖析

日期:2005-12-24 00:00:00     瀏覽:297    來源:東莞設(shè)計(jì)培訓(xùn)網(wǎng)

  實(shí)例說明:

  這是一個(gè)在網(wǎng)頁(yè)中的FLASH導(dǎo)航菜單,很有動(dòng)感吧?

  經(jīng)過本例的學(xué)習(xí),你將掌握基本的FLASH菜單的操作步驟。以及用AS來編寫變速運(yùn)動(dòng)的基本方法。一個(gè)例子的學(xué)習(xí)是次要的,希望大家學(xué)習(xí)完以后可以掌握這種方法,舉一反三,應(yīng)用到更多的實(shí)例中去。

   

  實(shí)例思路:

  正如前面所說的,一個(gè)例子的學(xué)習(xí)是次要的,關(guān)鍵是掌握這種方法。在進(jìn)行我們實(shí)例之前,先說一下理論與方法。

  在這個(gè)導(dǎo)航中,有四個(gè)Button(按鈕,簡(jiǎn)稱:BTN),一個(gè)MovieClip(影片,簡(jiǎn)介:MC)。上面跟隨移動(dòng)的MC實(shí)例名為:follow。下面的四個(gè)BTN實(shí)例名分別為:btn_home,btn_about,btn_news,btn_links。實(shí)例的運(yùn)動(dòng)方法:當(dāng)鼠標(biāo)移動(dòng)到其中的一個(gè)按鈕上時(shí),上面的MC(follow)會(huì)以逐漸減速的運(yùn)動(dòng)慢慢靠近鼠標(biāo)所指的按鈕上。這其中是以它們的X坐標(biāo)來判斷follow的位置的。

  follow總共需要移動(dòng)的距離為我們鼠標(biāo)所指的按鈕的X坐標(biāo)減去它自己的X坐標(biāo)。follow每次移動(dòng)一定的距離(如果大家仔細(xì)觀察的話,應(yīng)該發(fā)現(xiàn)它并不是以勻速進(jìn)行的,而是以減速進(jìn)行的)

  下面我們假設(shè)follow的X坐標(biāo)為40,而我們將鼠標(biāo)移動(dòng)到了btn_links的按鈕上了(即標(biāo)有l(wèi)inks的那個(gè)按鈕)。而btn_links的X坐標(biāo)為280,那么,它們之間的距離為btn_links._x-follow._x(這其中的._x代表這個(gè)實(shí)例的X坐標(biāo))。現(xiàn)在我們需要讓follow以減速運(yùn)動(dòng)從當(dāng)前的X坐標(biāo)移動(dòng)到btn_links的X坐標(biāo)上。

  注意:下面是本例的重點(diǎn),也就是需要大家掌握的“方法”。

  我們讓follow每次移動(dòng)它們之間的距離的1/2。因?yàn)閒ollow的X坐標(biāo)是隨時(shí)改變的,所以它們之間的距離也會(huì)隨時(shí)改變。當(dāng)follow*次移動(dòng)的時(shí)候,它的X坐標(biāo)為40+(280-40)/2=160注:(40(follow的X坐標(biāo))+(280(btn_links的X坐標(biāo))-40(follow的X坐標(biāo)))/2=160(移動(dòng)后follow的X坐標(biāo)))。當(dāng)它第二次移動(dòng)的時(shí)候,它的X坐標(biāo)為160+(280-160)/2=220。它*次移動(dòng)的距離為120像素,而第二次移動(dòng)的距離為60,實(shí)現(xiàn)了我們所要的減速運(yùn)動(dòng)。如果覺得這樣的減速運(yùn)動(dòng)太快的話,你可以適應(yīng)的改變每次移動(dòng)的比例。如讓follow每次移動(dòng)1/3……

  實(shí)例實(shí)踐:

  上面我們已經(jīng)掌握了本例的基本實(shí)現(xiàn)思路。下面,我們就按著我們的思路,來一步一步地去實(shí)現(xiàn)這個(gè)菜單。

  step1:首先,我們需要制作我們所需要的元素。4個(gè)bTN,以及一個(gè)MC,把你所需要的欄目,做成BTN,然后制作一個(gè)跟隨移動(dòng)的MC。
  方法:點(diǎn)擊菜單 插入(insert)>>新建元件(new symbol) 在名稱(name)上填寫名稱btn_home。(起名字*要有個(gè)規(guī)則,不然如果元件多了,看起來會(huì)很亂)

 ?。旖萱ICtrl+F8)確認(rèn)行為選擇為按鈕。

  點(diǎn)擊確認(rèn)以后,便會(huì)進(jìn)到這個(gè)元件的編輯界面。我們會(huì)看到這里面的編輯方式不一和主場(chǎng)景不一樣,只有四個(gè)幀,這是因?yàn)檫@個(gè)元件的行為是按鈕的原因。這四個(gè)幀分別為:up(彈起)、over(指針經(jīng)過)、down(按下)、activ(點(diǎn)擊)。分別代表鼠標(biāo)不在按鈕上,鼠標(biāo)經(jīng)過按鈕(或者在按鈕上停留時(shí)),鼠標(biāo)點(diǎn)擊時(shí),*一個(gè)是響應(yīng)鼠標(biāo)的區(qū)域。如果*一層沒有的話,就會(huì)以最上面一層的up(彈起)為活動(dòng)區(qū)域。

  我們?cè)趫D層1的up幀用文本工具寫入HOME,這里顏色為#146270。然后在down(按下)幀,點(diǎn)鼠標(biāo)右鍵,選擇插入幀(insert frame)。這是為了保證在任何時(shí)候都顯示home這幾個(gè)文字。在屬性面板中設(shè)置X和Y都為0;然后在新建一圖層,將圖層2拉到圖層1下面,用矩形工具在圖層2上畫一個(gè)長(zhǎng)方形。在屬性面板設(shè)置寬為80,高為20,X和Y都為0;設(shè)置填充色為#56CCE0,無邊框。然后在鼠標(biāo)經(jīng)過(OVER)上點(diǎn)鼠標(biāo)右鍵選擇插入關(guān)鍵幀(insert key frame)。將填充色改為#8ADCEA,然后在*一幀上,即點(diǎn)擊(activ)幀點(diǎn)鼠標(biāo)右鍵,選擇插入幀(這樣是為了讓我們的鼠標(biāo)活動(dòng)范圍增大)。按照此方法,繼續(xù)制作其它欄目的BTN,只有文字不同,其它地方方法一樣。你也可以在庫(kù)面板(窗口>>庫(kù),快捷鍵Ctrl+L、F11),選擇建立的元件名,這里是btn_home,然后右擊,選擇復(fù)制,起一個(gè)新的好記的名稱,然后再雙擊進(jìn)入復(fù)制好的元件里,對(duì)文字進(jìn)行編輯。把文字改為各個(gè)欄目的名稱。

  將四個(gè)按鈕制作完以后,再新建一個(gè)元件,名字為follow,行為為影片剪輯,同樣用矩形工具畫一個(gè)長(zhǎng)方形,然后對(duì)它用漸變進(jìn)行填充。高:6,寬:80,X:0,Y:0。

  step2:回到主場(chǎng)景,打開庫(kù)面板,將我們的組件拉到主場(chǎng)景來,對(duì)它們的位置進(jìn)行排列。

  把主場(chǎng)景的大小設(shè)為400X40,幀數(shù)為25幀,背景色為#006699。把四個(gè)按鈕拉進(jìn)主場(chǎng)景,將它們的Y坐標(biāo)都設(shè)為20,X坐標(biāo)分別為:40,122,204,286(這里可以自由設(shè)定)。為了直觀,將該層改名為btns。

  新建一層,將follow影片也拉到主場(chǎng)景,X:40;Y:7,將該層改名為follow。

  給每個(gè)按鈕、影片起實(shí)例名:先看一下下面的圖片

  為home、about、news、links分別起實(shí)例名為btn_home,btn_about,btn_news、btn_links。給上面的跟隨移動(dòng)的MC,起名為follow。

  注意:這里的實(shí)例名和在庫(kù)中的元件名是兩回事。庫(kù)中的元件名是為了我們能夠在編輯的時(shí)候,可以很好的區(qū)分它們。不在同目錄下的元件是可以重名的。而場(chǎng)景中的實(shí)例名,則是為了讓我們?cè)谑褂镁帉慳s程序的時(shí)候,利用實(shí)例名來分辨他們。

  再新建一層,起名為as,在下面鍵入如下代碼。(附注釋)

//這個(gè)符號(hào)是FLASH中的注釋符
//設(shè)置兩個(gè)變量,startX,endX,用來保存follow的運(yùn)動(dòng)起始點(diǎn)和結(jié)束點(diǎn)。即當(dāng)前的followX坐標(biāo)與我們所移動(dòng)到的BTN的X坐標(biāo)。這里僅起到初始化的作用。
startX = follow._x;
endX = 40;

//當(dāng)鼠標(biāo)移動(dòng)到不同的按鈕上時(shí),follow的結(jié)束點(diǎn)X坐標(biāo)是不同的。以下的語句是用來判斷鼠標(biāo)移動(dòng)到哪一個(gè)按鈕上了。
btn_home.onRollOver = function() {
     //設(shè)置當(dāng)鼠標(biāo)移動(dòng)到不同的按鈕上時(shí),結(jié)束點(diǎn)的X坐標(biāo)為當(dāng)前鼠標(biāo)所移動(dòng)到的按鈕的X坐標(biāo)
     endX = this._x;
};
btn_about.onRollOver = function() {
     endX = this._x;
};
btn_news.onRollOver = function() {
     endX = this._x;
};
btn_links.onRollOver = function() {
     endX = this._x;
};

//這里的onEnterFrame是為了保證實(shí)時(shí)運(yùn)行,即當(dāng)播放到這一幀時(shí),便持續(xù)播放。
follow.onEnterFrame = function() {
     //因?yàn)閒ollow的X坐標(biāo)是實(shí)時(shí)在變化的,因此,我們需要每次都取得它的X坐標(biāo)。
     startX=follow._x;
     //moveX用來計(jì)算每回移動(dòng)的距離。endX是所要移動(dòng)到的按鈕的X坐標(biāo)。startX便是follow的當(dāng)前X坐標(biāo)了
     moveX=(endX-startX)/2;
     //重新設(shè)置follow的X坐標(biāo)
     this._x=moveX+this._x;
};

  現(xiàn)在再確認(rèn)一下你所鍵入的代碼,并且確認(rèn)實(shí)例名稱已經(jīng)設(shè)定,并且正確。就可以按Ctrl+Enter來預(yù)覽一下了?!∠螺d源文件

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: