文件大小:
軟件介紹
1.無任何約束的拖動(dòng)
(1)打開“插入”菜單的“新建元件”命令,在“創(chuàng)建新元件”對(duì)話框中,“名稱”框內(nèi)輸入“球”,“行為”選擇“影片剪接”。
(2)畫一個(gè)圓,最好是讓圓心和影片剪接的中心對(duì)齊。
(3)選擇主場景,按F11打開“庫”面板,將剛制作好的球拖動(dòng)至主場景中。
(4)選擇主場景中的球,打開窗口下方的“屬性”面板,在名稱框內(nèi)輸入名稱ball。
(5)右擊ball,選擇“動(dòng)作”命令,在代碼編輯框內(nèi)輸入:
on(PRess)
{
startDrag("",true);//允許拖動(dòng)ball
}
on(release, releaSEOutside)
{
stopDrag();//釋放鼠標(biāo)時(shí),停止拖動(dòng)ball
}
(6)拖動(dòng)ball,我們將看到ball可以拖動(dòng)到場景中的任意位置,釋放鼠標(biāo)時(shí),ball將停止拖動(dòng)。
2.約束某一矩形范圍內(nèi)的拖動(dòng)
將以上代碼改為:
on(press)
3.沿某一路徑的拖動(dòng)
在某些場合,如通過拖動(dòng)動(dòng)態(tài)生成數(shù)學(xué)函數(shù)圖像時(shí),因?yàn)楹瘮?shù)圖像都有一個(gè)函數(shù)式約束,決定了以上兩種方法都不可行。這種拖動(dòng)的關(guān)鍵在于要根據(jù)約束條件來決定被拖動(dòng)對(duì)象的位置。下面以動(dòng)態(tài)生成圓來說明此類拖動(dòng)問題的解決方法。
(1)通過“插入”菜單制作一個(gè)名為“點(diǎn)”的電影剪接,畫一個(gè)小點(diǎn)表示該電影剪接,注意點(diǎn)的中心和電影剪接的中心點(diǎn)重合。
(2)轉(zhuǎn)到主場景,新增一圖層,將兩圖層分別命名為“腳本”和“對(duì)象”。
(3)選擇“對(duì)象”時(shí)間軸,在場景中加入兩個(gè)“點(diǎn)”的實(shí)例,在它們的屬性面板中分別命名為“yuanxi”(表示圓心)和“dian”(表示圓周上的點(diǎn)),讓它們適當(dāng)保持一定的距離,并且讓“yuanxi”位于場景的中央。
(4)右擊“腳本”層第一幀,選擇“動(dòng)作”,在代碼編輯窗口內(nèi)輸入以下腳本:
drag_flag=false;//拖動(dòng)標(biāo)志
x0=yuanxin._x;
y0=yuanxin._y;
dian_x=dian._x;
dian_y=dian._y;
//計(jì)算圓的半徑,這就是拖動(dòng)圓周的點(diǎn)的約束條件,被拖動(dòng)的點(diǎn)到圓心的距離等于半徑。
r=Math.sqrt((x0-dian_x)*(x0-dian_x)+(y0-dian_y)*(y0-dian_y));
_root.onEnterFrame =function()
{
if (drag_flag)
{
x = _xmouse;
y = _ymouse;
angle=Math.atan(Math.abs(y0-y)/Math.abs(x-x0));
dian_x=x0+r*Math.cos(angle);
dian_y=y0-r*Math.sin(angle);
//第一象限
if((x>=x0) &&&& (y<=y0))
{
dian_x = x0+r*Math.cos(angle);
dian_y = y0-r*Math.sin(angle);
depth=angle*180/3.14159;
}
{
//限制拖動(dòng)范圍為(0,0)到(100,100)之間,注意坐標(biāo)原點(diǎn)位于場景中的左上角。
startDrag("",true,0,0,100,100); }
on(release, releaseOutside)
{
stopDrag();
}
再拖動(dòng)ball,將看到ball被限制在某一區(qū)域內(nèi)拖動(dòng)。
//第二象限
if((x<=x0) &&&& (y<=y0))
{
dian_x=x0-r*Math.cos(angle);
dian_y=y0-r*Math.sin(angle);
depth=angle*180/3.14159+90;
}
//第三象限
if((x<=x0) &&&& (y>=y0))
{
(5)右擊dian實(shí)例,選擇“動(dòng)作”命令,輸入以下腳本:
on(press)
{
_root.drag_flag=true;//在dian實(shí)例上按下鼠標(biāo)左鍵,置拖動(dòng)標(biāo)志為真。
}
on(release, releaseOutside)
{
_root.drag_flag=false;//在dian實(shí)例上松開鼠標(biāo)左鍵,置拖動(dòng)標(biāo)志為假。
}
(6)測試影片,拖動(dòng)dian實(shí)例,將看到在場景中會(huì)畫出一個(gè)由點(diǎn)構(gòu)成的圓。
從此例可以看出,實(shí)現(xiàn)沿某一路徑的拖動(dòng),關(guān)鍵是要通過約束條件找到拖動(dòng)時(shí)的對(duì)象的坐標(biāo)。
dian_x=x0-r*Math.cos(angle);
dian_y=y0+r*Math.sin(angle);
depth=angle*180/3.14159+180;
}
//第四象限
if((x>=x0) &&&& (y>=y0))
{
dian_x=x0+r*Math.cos(angle);
dian_y=y0+r*Math.sin(angle);
depth=angle*180/3.14159+270;
}
duplicateMovieClip("dian","dian" add depth,depth);
_root["dian" add depth]._x=dian_x;
_root["dian" add depth]._y=dian_y;
_root.clear();
_root.moveTo(x0,y0);
_root.lineStyle(1,0xff0000,100);
_root.lineTo(dian_x,dian_y);
}
}
版權(quán)聲明:
1 本站所有資源(含游戲)均是軟件作者、開發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!
2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。
3 若有關(guān)在線投稿、無法下載等問題,請(qǐng)與本站客服人員聯(lián)系。
4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784
- 千億體育手機(jī)版本v2.0.1 安卓版
- tplink物聯(lián)電腦版(原tplink安防) v2.12.17.
- Sandboxie Plus v1.9.8 / v5.64.8 開源電腦
- 字魂100號(hào)方方先鋒體字體包免費(fèi)版
- 奧維互動(dòng)地圖奧維地圖PC破解版VIP V9.0.6
- 蘭博對(duì)戰(zhàn)平臺(tái) V1.38.6 官方最新版 / 蘭博玩
- reWASD(Xbox One手柄映射工具) V6.0.1.5190
- mtool修改器 V2023.11 官方最新版 / mtool
- 115轉(zhuǎn)存助手ui優(yōu)化版腳本 V3.9.1 綠色免費(fèi)
- iSecure Center電腦客戶端 V1.5.0 官方版
點(diǎn)擊加載更多評(píng)論>>