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