提示:這是個很妙的效果,說這句話是為了引起你的閱讀興趣,提供思路為主,以文字為例,更好的效果如把文字換成圖片散射依照這個思路應(yīng)當(dāng)可以很完美的實現(xiàn),同時,第三部分的BUG已經(jīng)清除,所以我對本文章作下修改,謝謝各位的幫忙。
第一部分:同一坐標(biāo)點散射,類似煙花效果
目標(biāo):大量文字從一個原點向四周散射
“大量”———————很顯然,要用到duplicatemovieclip或者attachmovie,這里我選擇attachmovie,至于
什么原因,以下我將闡述。 “散射”——————x,y偏移,結(jié)合Math.random()就是隨機偏移.隨機數(shù)的取值要有正且有負(fù),因為散射是四面八方的X,Y偏移。 “一個原點”————這個效果的原理理解關(guān)鍵點就在這里,一個原點,換句話說就是將復(fù)制出來的MC坐標(biāo)歸于一個位置,這樣任意一個x,y偏移值,播放起來就是一個散射,他不同于那種“不同坐標(biāo)點散射”,即如果你把復(fù)制出來的坐標(biāo)值隨機設(shè)定,加上一個單純的x,y偏移,MC會到處亂飛,畫面會毫無規(guī)律。這一點一定要理解。
實現(xiàn)步驟:
1,隨便做個帶文字的MC,在庫中l(wèi)inkage名為mymc
2,舞臺時間軸代碼:
LEFT = 0; TOP = 0; RIGHT = Stage.width; BOTTOM = Stage.height;
maxspeed=25 maxmc=100 minmc=20
function randrange(min,max){ var randomnum=Math.floor(Math.random()*(max-min+1))+min return randomnum }//自定義函數(shù),取兩數(shù)之間的隨機數(shù)
mcnum=randrange(minmc,maxmc) trace(mcnum)//測試用 for(i=0;i<=mcnum;i++){ dupmc=attachMovie("mymc","mymc"+i,10+i) trace(dupmc)//測試用 dupmc._x=200 dupmc._y=200//設(shè)定同一個坐標(biāo)位置 dupmc._xscale=dupmc._yscale=randrange(0,100) dupmc.speedx=randrange(-maxspeed,maxspeed) dupmc.speedy=randrange(-maxspeed,maxspeed)//每一個復(fù)制出來的MC都會有一個隨機x,y偏移(從自己
的負(fù)值到自身值,保證了坐標(biāo)既有正也有負(fù)) dupmc.onEnterFrame=function(){ this._x+=this.speedx this._y+=this.speedy if (this._x < LEFT || this._x > RIGHT || this._y < TOP || this._y > BOTTOM) { this.removeMovieClip(); }//end if } }
ok,代碼結(jié)束,以下我談?wù)勎覟槭裁床挥胐uplicatemovieclip而用attachmovie 我們都知道把duplicatemovieclip或attachmovie前面加一個變量,很方便調(diào)整MC屬性,書寫也簡單,但實
現(xiàn)方式有兩種。 起初我是用duplicatemovieclip,前面設(shè)定了一個變量,即: dupmc=duplicatemovieclip("mymc","mymc"+i,10+i) trace(dupmc)//測試用 輸出undefined,而換成attachmovie就能正常輸出了 所以我選擇了attachmovie,但說實在話,attachmovie也不是什么好鳥,MC一大,就會延遲進(jìn)度,所以這是個問題,歡迎共同探討,我就來拋磚引玉。
效果欣賞 源碼下載
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 下一頁 不同坐標(biāo)點的文字散射
◎進(jìn)入論壇RIA設(shè)計與應(yīng)用版塊參加討論
|