AS3編程教學(xué):元件拖動(dòng)高級(jí)教程
元件拖動(dòng)是Flash交互設(shè)計(jì)領(lǐng)域一個(gè)非常常用的交互手段和效果,利用flash自帶的startDrag和stopDrag就能實(shí)現(xiàn)基本的拖動(dòng)運(yùn)動(dòng),本節(jié)對(duì)這個(gè)方法進(jìn)行一個(gè)全面的講述,旨在讓大家徹底掌握“拖動(dòng)
元件拖動(dòng)是Flash交互設(shè)計(jì)領(lǐng)域一個(gè)非常常用的交互手段和效果,利用flash自帶的startDrag和stopDrag就能實(shí)現(xiàn)基本的拖動(dòng)運(yùn)動(dòng),本節(jié)對(duì)這個(gè)方法進(jìn)行一個(gè)全面的講述,旨在讓大家徹底掌握“拖動(dòng)”這個(gè)技術(shù)。
新建空白文檔
首先我們打開Flash軟件,利用歡迎界面來新建一個(gè)空白文檔。
導(dǎo)入笑臉圖
我們找了一張笑臉圖,導(dǎo)入到舞臺(tái)中。為了方便操作,可以按下Q鍵來進(jìn)行縮放。
轉(zhuǎn)化成影片剪輯
將笑臉圖轉(zhuǎn)化成影片剪輯,并給它一個(gè)實(shí)例名為mcFace,因?yàn)槌绦蚩刂茣r(shí)需要這個(gè)名字。
添加代碼
在時(shí)間軸新建一層AS圖層,在第一幀加入下列代碼,便可以實(shí)現(xiàn)這張笑臉圖的自由拖動(dòng):
(_DOWN, startDragFace); (_UP, stopDragFace); function startDragFace(e:MouseEvent):void { (); } function stopDragFace(e:MouseEvent):void { (); }
自由拖動(dòng)元件
我們可以在笑臉的任意位置單擊鼠標(biāo)并將其拖動(dòng)到舞臺(tái)的任何位置,沒有任何限制,這是最基本的拖動(dòng)效果。
設(shè)置第一個(gè)參數(shù)
通過設(shè)置startDrag函數(shù)的第一個(gè)參數(shù)為true,可以實(shí)現(xiàn)拖動(dòng)時(shí)將鼠標(biāo)鎖定在注冊(cè)點(diǎn)處。
(_DOWN, startDragFace); (_UP, stopDragFace); function startDragFace(e:MouseEvent):void { (true); } function stopDragFace(e:MouseEvent):void { (); }
設(shè)置限制區(qū)域
繼續(xù)修改startDrag函數(shù),給它加入一個(gè)限制區(qū)域。通過創(chuàng)建一個(gè)Rectangle對(duì)象來定義一個(gè)矩形區(qū)域,實(shí)現(xiàn)拖動(dòng)的限制。
(_DOWN, startDragFace); (_UP, stopDragFace); function startDragFace(e:MouseEvent):void { (true, new Rectangle(50, 50, 300, 300)); } function stopDragFace(e:MouseEvent):void { (); }
限制拖動(dòng)范圍
經(jīng)過以上修改,我們發(fā)現(xiàn)笑臉已經(jīng)不能自由拖動(dòng)了,在左邊和右邊有個(gè)地方就過不去了。這就提供了一種很好的邊界判斷方法,而且不用我們自己去判斷。這種方法在滾動(dòng)條組件的滑動(dòng)條拖動(dòng)中也常被使用。
以上就是關(guān)于AS3編程中元件拖動(dòng)的高級(jí)教程,希望能夠幫助大家更好地掌握這個(gè)技術(shù)。