Flash MX課件中的拖動

2022-06-12發(fā)布者:ylm大?。?/span> 下載:0

文件大小:

軟件介紹

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);

  }

  }

發(fā)表評論(共0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評論內(nèi)容只代表網(wǎng)友觀點,發(fā)表審核后顯示!

版權(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

返回頂部