Flash as教程:文字散射效果
第二部分:不同坐標(biāo)點的文字散射
目標(biāo):文字呈一種空間放射狀散射出來,并不斷循環(huán),外加透明度,縮放比例動態(tài)調(diào)整塑造立體感,空間感。
要點:空間感和節(jié)奏感(動作執(zhí)行有間隔,逐個出現(xiàn)并依次放射)
概念理解:MC內(nèi)部時間軸的坐標(biāo)系是制作空間感最好的坐標(biāo)系,任何點無論在在哪個象限內(nèi),用坐標(biāo)值乘
以一個遞增的正變量,都可以達到放射的目的。
首先,得明白主時間軸和MC內(nèi)部時間軸的坐標(biāo)差別——————推出MC內(nèi)部時間軸坐標(biāo)特點:就是一個直角坐標(biāo)系,中心為原點,分為四個象限,這正是我們所要的坐標(biāo)系,因為我們要放射,坐標(biāo)值的偏移應(yīng)該有正有負,而在舞臺的時間軸,畫面只能顯示_x>=0&&_y>=0的區(qū)域,是個不易操作的坐標(biāo)系。下面來舉個例子說明MC內(nèi)部時間軸的坐標(biāo)系是制作空間感最好的坐標(biāo)系。
以一個公式開頭(在頭腦中畫出高中數(shù)學(xué)的直角坐標(biāo)系):
mymc._x = a*c
mymc._y = b*c
其中,a,b是坐標(biāo)系中隨機的一個點,它的x坐標(biāo)為a, y坐標(biāo)為b, c是一個遞增值。
那現(xiàn)在推算下是不是無論該點在哪個象限內(nèi),都可以達到放射的目的呢?
在第一象限:
a>0,b>0,c遞增———X坐標(biāo)不斷增加,同時Y坐標(biāo)也不斷增加———放射
在第二象限:
a<0,b>0,c遞增———X坐標(biāo)不斷遞減,同時Y坐標(biāo)不斷增加———放射
在第三象限:
a<0,b<0,C遞增———X坐標(biāo)不斷遞減,同時Y坐標(biāo)也不斷遞減———放射
在第四象限:
a>0,b<0,c遞增———X坐標(biāo)不斷增加,同時Y坐標(biāo)不斷遞減———放射
思路:
首先,在限定范圍內(nèi)(最好小一點,為他的散射留出更多空間,這樣會覺得字從很深的地方飄來,
以下我限定的是-10——9),為復(fù)制的MC設(shè)定一個隨機位置,這就相當(dāng)于我上面所舉例子中的a和b,他們
其實是個坐標(biāo)初值。
然后,要達到放射效果,還需要一個遞增的正變量,即c,
所以我打了個字,轉(zhuǎn)換成了MC,再次轉(zhuǎn)換,命名為mymc,并延長至第3禎,新建一AS層。
為了讓要出現(xiàn)的東西依次出現(xiàn)(既可以體現(xiàn)節(jié)奏感,又可以防止文字重疊現(xiàn)象),我選擇禎循環(huán)的編程方式。
第一禎:設(shè)一些要用到的變量初值
mymc._alpha = 0;
i = 1;
numOfText = 20;
minOfZ = 1;
maxOfZ= 120;
第二禎:主程序
function randrange(min,max){
var randomnum=Math.floor(Math.random()*(max-min 1)) min
return randomnum
}//自定義函數(shù),取兩數(shù)之間的隨機數(shù)
duplicateMovieClip("mymc", i, i);
this[i].x = randrange(-11,9);
this[i].y = randrange(-10,9)//我選擇的初始坐標(biāo)范圍是-10到9
this[i].z = random(maxOfZ) 1;//1——120之間的整數(shù)
this[i].dz = -2;
this[i].gotoAndStop(random(this[i]._totalframes) 1);
this[i].onEnterFrame = function() {
this.z = this.dz;//做加速運動
if (this.z<minOfZ) {
this.x = randrange(-11,9);
this.y = randrange(-10,9)//這里的this也可以改為this[i]
this.z = maxOfZ;//this.z<minOfZindex時,也就是MC到達極限透明度,X,Y,比例
時,此時他已經(jīng)超出了舞臺,要不間斷播放,需要重新設(shè)定他的初值
}
this.pers =600/this.z;//由于每次減2,所以this.z最小值為2,因為再減2就為0了,小于1
this._x = this.x*this.pers;
this._y = this.y*this.pers;//this.pers會越逐漸遞增
this._xscale = this._yscale=this.pers;
this._alpha = 1000/this.z;//這里的1000你也可以改,不過別太小
};
第三禎:條件判斷
i ;
if (i>=numOfText) {
stop();//停在第二禎
}else{
gotoAndPlay(_currentframe-1);
}
順便提一下,我們要的c就是代碼中的this.pers=600/this.z,他是個遞增函數(shù),且恒正。
很簡單吧,測試下,思考下,也許你會比我想到的更多。
相關(guān)文章

flash cs6鼠標(biāo)跟隨效果實現(xiàn)代碼分享
flash cs6想要實現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19
Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友2018-03-11
flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.fzitv.net/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2018-01-25
Flash中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18
Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11
Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下2017-05-23
Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2017-04-23











