資源描述:
《鼠標(biāo)跟隨特效代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、鼠標(biāo)跟隨代碼物體對(duì)鼠標(biāo)的跟隨可以采用在幀上添加as語句starDrag的方法來實(shí)現(xiàn)。但是采用這種方法所實(shí)現(xiàn)的跟隨過程太生硬,跟得實(shí)在是緊,也就是當(dāng)鼠標(biāo)移動(dòng)到別的位置,物體也很快的移動(dòng)了過來,假如要讓物體慢慢(速度可以控制)的靠近鼠標(biāo),使用starDrag這條語句就不能做到。starDrag語句的功能其實(shí)是和下面的代碼相同的。onClipEvent(enterFrame){xTarget=_root._xmouse;yTarget=_root._ymouse;_x=xTarget;_y=yTarget;}這幾行代碼是添加在物體(影片剪輯
2、)上面的。其中,語句_x=xTarget和_y=yTarget的作用是使物體的坐標(biāo)定位到(xTarget,yTarget)上,而(xTarget,yTarget)就是鼠標(biāo)的當(dāng)前坐標(biāo)。修改這幾行代碼,就可以使物體在鼠標(biāo)移動(dòng)后,慢慢的靠近鼠標(biāo)。_x=xTarget等價(jià)于_x=xTarget+_x-_x(加一個(gè)減一個(gè))即:_x=_x+(xTarget-_x)其中的(xTarget-_x)是物體的目標(biāo)位置與當(dāng)前位置的坐標(biāo)差如果讓(xTarget-_x)乘上一個(gè)小于1的系數(shù),那么物體就不會(huì)突然移動(dòng)到坐標(biāo)(xTarget,yTarget)上,而是
3、慢慢的靠過去。于是,修改后的代碼如下:onClipEvent(enterFrame){xTarget=_root._xmouse;yTarget=_root._ymouse;fraction=0.5;_x=_x+(xTarget-_x)fraction;_y=_y+(yTarget-_y)fraction;}實(shí)現(xiàn)了慢慢靠近對(duì)“慢慢靠近”的加以利用:一個(gè)跟一個(gè)場景上放置一個(gè)影片剪輯,instancename命名為darg0在幀上添加代碼:copies=5;for(vari=1;i=copies;i++){duplicateMovieCl
4、ip(drag0,drag+i,i);(drag+i).num=i;}上面的代碼復(fù)制了5個(gè),drag1~drag5,連同drag0,場景上共6個(gè)其中,還給drag1~drag5定義了內(nèi)部變量drag1.num~drag5.num在場景上的drag0上面添加代碼:onClipEvent(enterFrame){if(num){xTarget=(_root.drag+(num-1))._x;yTarget=(_root.drag+(num-1))._y;}else{xTarget=_root._xmouse;yTarget=_root._
5、ymouse;}fraction=.5;_x+=(xTarget-_x)fraction;_y+=(yTarget-_y)fraction;}這幾行代碼使得drag0跟隨著鼠標(biāo),drag1跟隨著drag0,drag2跟隨著drag1,……,drag5跟隨著drag4解釋一下if這個(gè)判斷語句因?yàn)閐rag1.num~drag5.num的值都不為空,所以對(duì)于drag1~drag5這5個(gè)影片剪輯,執(zhí)行的代碼是:xTarget=(_root.drag+(num-1))._x;yTarget=(_root.drag+(num-1))._y;也就是
6、跟隨著前一個(gè)而對(duì)于drag0,由于沒有給它定義num,它的值為空,所以對(duì)于drag0,執(zhí)行的代碼是:xTarget=_root._xmouse;yTarget=_root._ymouse;也就是跟隨著鼠標(biāo)“一個(gè)跟一個(gè)”代碼的另一種寫法上面的“一個(gè)跟一個(gè)”的制作,是在場景上只放置了一個(gè)影片剪輯,然后在影片剪輯上添加as代碼,再通過在幀上添加as代碼(duplicateMovie)來復(fù)制影片剪輯。還可以用另外一種代碼方式來實(shí)現(xiàn)這種方式是直接在場景上放置了6個(gè)影片剪輯,依次命名為:drag0~drag5。然后在幀上添加代碼如下:_root.
7、drag0._x=_root._xmouse+10;_root.drag0._y=_root._ymouse;i=1;while(i=5){dragi=(drag+i);dragi_prev=(drag+(i-1));dragi._x+=(dragi_prev._x-dragi._x)0.5+10;dragi._y+=(dragi_prev._y-dragi._y)0.5;i=i+1;}該代碼也是使得drag0跟隨著鼠標(biāo),drag1跟隨著drag0,drag2跟隨著drag1,……,drag5跟隨著drag4(但是每個(gè)相差10)不過代
8、碼添加完畢,測試的時(shí)候,你會(huì)發(fā)現(xiàn)這些影片剪輯并不會(huì)移動(dòng)。因?yàn)檫€需要下面一個(gè)步驟:在時(shí)間軸的第二幀插入幀(F5),因?yàn)橹挥兄辽?幀,動(dòng)畫才會(huì)產(chǎn)生循環(huán),上面那些代碼也才會(huì)重復(fù)運(yùn)行,否則如果只有1幀的話,那些代碼也就只被執(zhí)行了