用鼠標拖動圖形拼圖——灰常簡單的教程

話嗣魅這種效果正在課件內裏經經常使用到,鼠標拖動事件,一個使用很頻仍的事件,一同教習教習吧
起首SWF奉獻給各人吭喲效果


覺得咋樣,本理其實借蠻簡單的,做做嚐嚐吧

上面去吭喲源碼吧
  1. package

  2. {

  3. import flash.display.MovieClip;

  4. import flash.display.Sprite;

  5. import flash.events.Event;

  6. import flash.events.MouseEvent;


  7. public class Main extends MovieClip

  8. {

  9. //聲明一個mc變量當暫時的容器

  10. private var mc;

  11. //聲明一個數組用去存儲拖動元件的初初座標

  12. private var arr:Array = new Array();

  13. //聲明一個num數字,用去判斷一切圖形能否皆曾經對好了

  14. private var num:uint = 0;

  15. public function Main()

  16. {

  17. //for爲一切拖動的對象加減鼠標腳型戰鼠標按下事件

  18. for (var i:int = 0; i < 4; i++)
  19. {

  20. //爲一切對象加減鼠標腳型

  21. this["mc" + i].buttonMode = true;

  22. //爲一切對象加減按下事件

  23. this["mc" + i].addEventListener(MouseEvent.MOUSE_DOWN, downHandler);

  24. //把一切對象的初初座標存儲進數組內裏

  25. arr.push(this["mc" + i].x, this["mc" + i].y);

  26. }

  27. //回位按鈕正在開端時分隱藏

  28. gw_btn.visible = false;

  29. }

  30. //鼠標按下的辦法

  31. private function downHandler(e:MouseEvent):void
  32. {
  33. //暫時容器mc賦值爲當前按下的對象

  34. mc = e.currentTarget;

  35. //開端拖動mc

  36. mc.startDrag();

  37. //把mc對象挪動到最上層,如許便沒有會呈現拖動的對象處於已拖動對象當甭圓了

  38. addChild(mc);

  39. //用stage監聽鼠標擡起事件
  40. stage.addEventListener(MouseEvent.MOUSE_UP, upHandler);

  41. }

  42. //stage鼠標擡起的辦法

  43. private function upHandler(e:MouseEvent):void
  44. {

  45. //mc對象截至拖動

  46. mc.stopDrag();
  47. //移除stage的鼠標擡起監聽事件

  48. stage.removeEventListener(MouseEvent.MOUSE_UP, upHandler);

  49. //聲明uint類型的變量n並賦值爲mc對象的名字的第2位往前面的數值,那一步是爲了與值北圖的對象的編號

  50. var n:uint = uint(String(mc.name.substr(2)));
  51. //if語句判斷,假如mc碰碰到了對圖對象mc_i時執止

  52. if (mc.hitTestObject(this["mc_" + n]))
  53. {

  54. //mc隱藏

  55. mc.visible = false;

  56. //被碰碰到的mc_i對象截至播放正在第兩幀上(第兩幀便是對圖對象的完好界裏)

  57. this["mc_" + n].gotoAndStop(2);

  58. //判斷的值num減減,用去判斷拼圖拼對了幾回

  59. num++;

  60. }

  61. //假如出右腎碰到mc_i對象

  62. else
  63. {

  64. //mc的x、y座標等於數組內裏存儲的初初座標,爲啥會乘以2呢,您能夠本人研討一下

  65. mc.x = arr[n*2];

  66. mc.y = arr[n*2+1];
  67. }

  68. //渾空mc對象

  69. mc = null;
  70. //if語句判斷,假如num等於4(有四個被拼圖的對象,以是那裏的判斷值爲4)

  71. if (num == 4)

  72. {

  73. //回位按鈕gw_btn隱示

  74. gw_btn.visible = true;

  75. //爲回位按鈕加減按鈕面擊事件

  76. gw_btn.addEventListener(MouseEvent.CLICK, clickHandler);

  77. }
  78. }

  79. //回位按鈕的鼠標面擊事件

  80. private function clickHandler(e:MouseEvent):void
  81. {

  82. //當前面擊的對象隱藏,也便是回位按鈕隱藏

  83. e.currentTarget.visible = false;

  84. //num判斷的數值回0,以便於再次判斷拼圖拼對了寂

  85. num = 0;

  86. //for爲mci對象加減隱藏屬性爲true,x、y座標爲初初座標,被拼圖的對象截至播放正在第一幀上裏

  87. for (var i:int = 0; i < 4; i++)
  88. {

  89. this["mc" + i].visible = true;

  90. this["mc" + i].x = arr[i*2];

  91. this["mc" + i].y = arr[i * 2 + 1];

  92. this["mc_" + i].gotoAndStop(1);

  93. }

  94. }

  95. }

  96. }
複製代碼

最初奉上我的祝願:http://www.shengshiyouxi.com

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章