FLASH跟隨鼠標(biāo)的旋轉(zhuǎn)星星_Flash教程
推薦:FLASH鼠標(biāo)點(diǎn)擊顯示打散動(dòng)畫1、新建Flash文檔,550*400,其它默認(rèn)。 2、創(chuàng)建影片剪輯,選橢圓工具,筆觸無,填充色放射漸變,畫一個(gè)橢圓(形狀自定,我相你會(huì)比我畫得更好),右鍵庫中設(shè)置鏈接,類名Ball。 3、返回場(chǎng)景1,第一層建背景(隨意),新建as圖層,在as圖層第一幀輸入代碼: //小球的初始位
第一步:
打開FLASH,新建一個(gè)影片剪輯元件,命名為“星星”,在里面繪制一個(gè)星星出來,并且把它的中心點(diǎn)和舞臺(tái)注冊(cè)點(diǎn)對(duì)齊,在第20幀和第40處各插入一個(gè)關(guān)鍵幀。選中第20幀,在它的中心點(diǎn)和舞臺(tái)的注冊(cè)點(diǎn)對(duì)齊的情況下按住SHIFT鍵進(jìn)行等比例縮小(你認(rèn)為差不多就行了),然后選中第1到20幀的任意一幀創(chuàng)建補(bǔ)間動(dòng)畫,打開屬性面板把它的轉(zhuǎn)調(diào)成逆時(shí)針,選中第20到40幀的任意一幀創(chuàng)建補(bǔ)間動(dòng)畫,打開屬性面板把它的轉(zhuǎn)調(diào)成順時(shí)針。
第二步:
在新建一個(gè)影片剪輯元件,命名為“轉(zhuǎn)圈的星星”,在圖層面板的地方找到“添加運(yùn)動(dòng)引導(dǎo)層”添加一個(gè)引導(dǎo)層出來,在選中該圖層的情況下按住AIT+SHIFT鍵在舞臺(tái)上繪制一個(gè)有邊框無填充色的圓(大小你認(rèn)為合適就OK),然后用鼠標(biāo)圈住它的一點(diǎn)邊選中后刪除(這樣做是給它一缺口),選中繪制好的圓,把它的左和上對(duì)齊舞臺(tái)中心的注冊(cè)點(diǎn),選中第40幀處添加一個(gè)幀,鎖定該圖層,選擇第一個(gè)圖層把我們庫中的星星拖進(jìn)來并把它的中心點(diǎn)對(duì)齊引導(dǎo)層中圓的上邊的那個(gè)缺口的地方,選中第四十幀插入一個(gè)關(guān)鍵幀把它的中心點(diǎn)對(duì)齊引導(dǎo)層中圓的下邊的那個(gè)缺口的地方�;氐轿枧_(tái),把庫中轉(zhuǎn)圈的星星放到舞臺(tái)任意位置,并給它一個(gè)實(shí)例名稱mc。
第三步:
繼續(xù)插入一個(gè)影片剪輯元件,命名為“as",選中第一幀添加以下代碼:
var k:Number=64;//用來定義星星的個(gè)數(shù);
var n:Number=16;//用來定義一圈星星的個(gè)數(shù);
var r:Number=2;X坐標(biāo)和Y坐標(biāo)的緩動(dòng),值越大跟隨鼠標(biāo)移動(dòng)時(shí)就越慢;
for(var i=1;i<=k;i++){
duplicateMovieClip("_root.mc","mc"+i,i);
setProperty("_root.mc"+i,_rotation,360/n*i);
setProperty("_root.mc"+i,_alpha,100/k*i);
}
setProperty(_root.mc,_visible,0);
選中第二幀處插入一個(gè)空白關(guān)鍵幀添加以下代碼:
for(var j=1;j<=k;j++){
setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/r);
setProperty("_root.mc"+j,_y,_root["mc"+j]._y+(_root["mc"+(j-1)]._y-_root["mc"+j]._y)/r);
}
選中第三幀處插入一個(gè)空白關(guān)鍵幀添加以下代碼:
gotoAndPlay(2);
添加完代碼以后回到主場(chǎng)景;
第四步:
把庫中名為as的元件拖放到舞臺(tái)上,給它一個(gè)實(shí)例名稱mc0.在主場(chǎng)景內(nèi)添加一個(gè)圖層在第一幀加上拖動(dòng)代碼:
startDrag("_root.mc0",true);
注意這里是mc0不是mc,雖然你拖動(dòng)的影片里面沒有東西,在下面我后細(xì)說的;
做到現(xiàn)在就算完工了,我在這里就把重點(diǎn)的地方說一下。N為什么是它的一圈星星的個(gè)數(shù)
在第一個(gè)for循環(huán)語句里有這樣一段,
setProperty("_root.mc"+i,_rotation,360/n*i);
看它的_rotation的值是360/n*i
也就是"_root.mc"+i,_rotation=360/16*i
也就是
_root.mc1._rotation=360/16*1
_root.mc2._rotation=360/16*2
_root.mc3._rotation=360/16*3
_root.mc4._rotation=360/16*4
_root.mc5._rotation=360/16*5
_root.mc6._rotation=360/16*6
_root.mc7._rotation=360/16*7
_root.mc8._rotation=360/16*8
_root.mc9._rotation=360/16*9
_root.mc10._rotation=360/16*10
.............._root.mc64._rotation=360/16*64
也就是說把360度平均分成16份,它們的角度就是這個(gè)值,360/16=22.5。
第一個(gè)MC的角度是從原MC角度22.5的地方開始復(fù)制出來的,第二個(gè)MC的角度是從原MC角度45的地方開始復(fù)制出來的,第三個(gè)MC的角度是從原MC角度67.5的地方開始復(fù)制出來的,直到乘到17的時(shí)候就重疊了,因?yàn)?60/16*6=382.5,角最大值是360,當(dāng)?shù)?82.5的時(shí)候它就把360看成0來計(jì)算了,結(jié)果就是22.5,當(dāng)你把N的值調(diào)大的時(shí)候,比如36它就會(huì)有36個(gè)星星圍成一圈了,360/36*i 也就是mc1角度是10*1,mc2的角度是10*2 ,mc3的角度是10*3 當(dāng)乘到37的時(shí)候它的角度多了10也就是370,第37個(gè)MC的角度會(huì)是原MC角度的370-360也就是10,這就是N的值等于一圈星星的原因。
我們?cè)谥鲌?chǎng)景第一幀里放的代碼明明是拖動(dòng)的MC0,為什么MC復(fù)制出來的影片會(huì)跟著鼠標(biāo)走,把在AS第二幀設(shè)置X、Y坐標(biāo)的循環(huán)代碼拿下來分析一下:
for(var j=1;j<=k;j++){
setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/2);
setProperty("_root.mc"+j,_y,_root["mc"+j]._y+(_root["mc"+(j-1)]._y-_root["mc"+j]._y)/2);
}
看它的X坐標(biāo),
setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/2);
setProperty這句話是說設(shè)置括號(hào)內(nèi)(目標(biāo),目標(biāo)的屬性,該屬性的值);
我們現(xiàn)在的目標(biāo)就是主場(chǎng)景上面的mc1,mc2,mc3,mc4,mc5......mc64;
它們的X坐標(biāo)值各是多少,為什么會(huì)跟隨鼠標(biāo)移動(dòng),我們來仔細(xì)地看下它們的值
_root.mc+i._x_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/2
也就是
mc1._x=mc1._x+(mc+(j-1)._x-mc1._x)/2
假設(shè)mc1現(xiàn)在的坐標(biāo)是300
也就是mc1._x=300+(mc+(j-1)._x-300)/2
現(xiàn)在我們已經(jīng)得到兩個(gè)數(shù)字了,還有一個(gè)mc+(j-1)._x,先算括號(hào)內(nèi),j-1第一次運(yùn)行循環(huán)的時(shí)候j的值是1,就是1-1,也就是0;也就是mc+0,也就是mc0,也就是我們拖動(dòng)的那個(gè)沒有東西的影片剪輯。mc0是跟著我們的鼠標(biāo)動(dòng)的,上面搞清楚后,我們就在給mc0也就是我們鼠標(biāo)的坐標(biāo)假設(shè)一個(gè)值。隨便設(shè)定一個(gè)我們就假設(shè)100吧,值有了我們?cè)诮又鏊阈g(shù)。
mc1._x=300+(100-300)/2
也就是
mc1._x=300+負(fù)200/2
也就是
mc1._x=300+負(fù)100 //注意下負(fù)值是越乘負(fù)的越多,越除負(fù)的越少,加減相反
也就是
mc1._x=200;
分享:FLASH制作動(dòng)畫火柴棍人光劍短打雙人光劍的短打,改進(jìn)了不少制作方法,在光劍的處理上加入了濾鏡,效果頗好我在這就談?wù)勎业闹谱鹘?jīng)驗(yàn)光劍練習(xí)效果。 一、準(zhǔn)備工作 模板文件(Template.fla),以及FLASH8或更新版本(因?yàn)橐玫綖V鏡)。 二、整體設(shè)置 先簡(jiǎn)單說下我的源文件整體設(shè)置: 主場(chǎng)景大�。�400*250
- FLASH鼠標(biāo)點(diǎn)擊顯示打散動(dòng)畫
- FLASH制作動(dòng)畫火柴棍人光劍短打
- FLASH控制動(dòng)畫聲音的停止和播放
- FLASH圖片首尾連接循環(huán)滾動(dòng)
- Flash軟件怎么把圖形轉(zhuǎn)換為元件?
- 使用Flash MX將GIF動(dòng)畫圖片制成FLASH動(dòng)畫
- flash制作簡(jiǎn)單會(huì)動(dòng)的移動(dòng)版gif圖片
- 利用Flash制作不停轉(zhuǎn)動(dòng)的地球儀實(shí)例教程
- 網(wǎng)頁中插入透明Flash的方法和技巧
- 學(xué)習(xí)Flash ActionScript編程的注意事項(xiàng)
- flash動(dòng)畫制作網(wǎng)頁中演示類FLASH動(dòng)畫的制作規(guī)范
- Flash AtionScrip 3.0制作逼真的雪花飄飄的gif動(dòng)畫效果
- 相關(guān)鏈接:
- 教程說明:
Flash教程-FLASH跟隨鼠標(biāo)的旋轉(zhuǎn)星星
。