用鼠标拖动图形拼图——灰常简单的教程

话嗣魅这种效果正在课件内里经经常使用到,鼠标拖动事件,一个使用很频仍的事件,一同教习教习吧
起首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

 

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