鼠標(biāo)跟隨是flash里一個(gè)“古老的”的話題了,可是現(xiàn)在還有人問起這個(gè)問題,我們論壇上最近也沒有人說了,我就把我半年前做的做成一個(gè)教程,供大家學(xué)習(xí),這個(gè)完全是有我個(gè)人制作的,如有雷同,純屬巧合。
鼠標(biāo)跟隨其實(shí)是一個(gè)很簡(jiǎn)單的問題,可以有很多種算法來實(shí)現(xiàn),在這里我介紹一下我自己編寫的一種,希望大家參考。
第一步:建立一個(gè)word MC,內(nèi)有一個(gè)在中間的動(dòng)態(tài)文字框,去掉可選,只需要能容納一個(gè)字即可。字的顏色可以自己設(shè)定(千萬不能是和底色是一樣的。。
第二步:在library的連接里將word MC輸出為word 符號(hào)已被以后使用你看前兩步很簡(jiǎn)單吧 以后的也不難,只要你會(huì)一點(diǎn)點(diǎn)的action
第三步:(也很容易的)在你想要有移動(dòng)文字的場(chǎng)景下(可以是主場(chǎng)景,也可以是另外一個(gè)mc,我是用的一個(gè)mc叫move),將默認(rèn)層改為action層,然后添加兩個(gè)關(guān)鍵幀,第二幀里的動(dòng)作是: gotoAndPlay(1); 注意:我這里不用mc,而用兩幀的循環(huán)來替代entframe,我建議大家盡量把程序?qū)懺跁r(shí)間軸里,因?yàn)檫@樣更有利于程序的管理,和程序運(yùn)行順序的選擇,程序更一目了然,容易理解,希望大家養(yǎng)成這個(gè)好習(xí)慣。
第四步:(到這里還不難吧,下面是關(guān)鍵的程序了,就是第一幀的程序) 鼠標(biāo)跟隨關(guān)鍵是要每個(gè)文字都要跟隨鼠標(biāo),但是速度不能一樣快,最后停止的位置也不能一樣,理解了這一點(diǎn),程序就很容易理解了。具體程序及說明如下:
if (ip == null) { Mouse.hide(); //隱藏鼠標(biāo) lx = 20; // 設(shè)置字的間距 string = "當(dāng)前幀工作室"; // 設(shè)置要跟隨的文字 wordlenth = string.length; for (i=0; i<wordlenth; i++) { this.attachMovie("word", "word"+i, i+1); this["word"+i].word = mbsubstring(string, i+1, 1); //獲取mc并把要顯示的字一次導(dǎo)入其中顯示 } ip = 0; } // delay = 6;// 設(shè)置延遲時(shí)間,來控制字的移動(dòng)速度 word0._x += (_xmouse+lx-word0._x)/delay; // 初始化第一個(gè)字的位置 word0._y += (_ymouse-word0._y)/delay; for (i=1; i<wordlenth; i++) { // 確定以后字的移動(dòng)和位置 delay += 0.5; this["word"+i]._x += (this["word"+(i-1)]._x+lx-this["word"+i]._x)/delay; this["word"+i]._y += (this["word"+(i-1)]._y-this["word"+i]._y)/delay; } // 設(shè)計(jì)者,當(dāng)前幀工作室goldgoat于2001年五月30日+ // 版權(quán)所有、歡迎復(fù)制^_^
以上就是整個(gè)程序了,就這么簡(jiǎn)單,不難吧^_^。 if (ip == null)這句判斷是為了數(shù)據(jù)的初始化,在里面的程序僅執(zhí)行一次,以后就不執(zhí)行了。 (這可是非常有用的阿,一定要掌握)
第五步:好了,所有的事都做完了,下面的就是畫蛇添足了,就是加上一個(gè)自己的鼠標(biāo),做一個(gè)自己的鼠標(biāo)mouse放到主場(chǎng)景下,然后在action層里加一句: startDrag ("mouse", true); 還有就是可別忘了隱藏自己的鼠標(biāo)啊。
出處:藍(lán)色理想
責(zé)任編輯:無意
◎進(jìn)入論壇Flash專欄版塊參加討論
|