话嗣魅这种效果正在课件内里经经常使用到,鼠标拖动事件,一个使用很频仍的事件,一同教习教习吧
起首SWF奉献给各人吭哟效果
觉得咋样,本理其实借蛮简单的,做做尝尝吧
上面去吭哟源码吧
复制代码
起首SWF奉献给各人吭哟效果
觉得咋样,本理其实借蛮简单的,做做尝尝吧
上面去吭哟源码吧
- package
- {
- import flash.display.MovieClip;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- public class Main extends MovieClip
- {
- //声明一个mc变量当暂时的容器
- private var mc;
- //声明一个数组用去存储拖动元件的初初坐标
- private var arr:Array = new Array();
- //声明一个num数字,用去判断一切图形能否皆曾经对好了
- private var num:uint = 0;
- public function Main()
- {
- //for为一切拖动的对象加减鼠标脚型战鼠标按下事件
- for (var i:int = 0; i < 4; i++)
- {
- //为一切对象加减鼠标脚型
- this["mc" + i].buttonMode = true;
- //为一切对象加减按下事件
- this["mc" + i].addEventListener(MouseEvent.MOUSE_DOWN, downHandler);
- //把一切对象的初初坐标存储进数组内里
- arr.push(this["mc" + i].x, this["mc" + i].y);
- }
- //回位按钮正在开端时分隐藏
- gw_btn.visible = false;
- }
- //鼠标按下的办法
- private function downHandler(e:MouseEvent):void
- {
- //暂时容器mc赋值为当前按下的对象
- mc = e.currentTarget;
- //开端拖动mc
- mc.startDrag();
- //把mc对象挪动到最上层,如许便没有会呈现拖动的对象处于已拖动对象当甭圆了
- addChild(mc);
- //用stage监听鼠标抬起事件
- stage.addEventListener(MouseEvent.MOUSE_UP, upHandler);
- }
- //stage鼠标抬起的办法
- private function upHandler(e:MouseEvent):void
- {
- //mc对象截至拖动
- mc.stopDrag();
- //移除stage的鼠标抬起监听事件
- stage.removeEventListener(MouseEvent.MOUSE_UP, upHandler);
- //声明uint类型的变量n并赋值为mc对象的名字的第2位往前面的数值,那一步是为了与值北图的对象的编号
- var n:uint = uint(String(mc.name.substr(2)));
- //if语句判断,假如mc碰碰到了对图对象mc_i时执止
- if (mc.hitTestObject(this["mc_" + n]))
- {
- //mc隐藏
- mc.visible = false;
- //被碰碰到的mc_i对象截至播放正在第两帧上(第两帧便是对图对象的完好界里)
- this["mc_" + n].gotoAndStop(2);
- //判断的值num减减,用去判断拼图拼对了几回
- num++;
- }
- //假如出右肾碰到mc_i对象
- else
- {
- //mc的x、y坐标等于数组内里存储的初初坐标,为啥会乘以2呢,您能够本人研讨一下
- mc.x = arr[n*2];
- mc.y = arr[n*2+1];
- }
- //浑空mc对象
- mc = null;
- //if语句判断,假如num等于4(有四个被拼图的对象,以是那里的判断值为4)
- if (num == 4)
- {
- //回位按钮gw_btn隐示
- gw_btn.visible = true;
- //为回位按钮加减按钮面击事件
- gw_btn.addEventListener(MouseEvent.CLICK, clickHandler);
- }
- }
- //回位按钮的鼠标面击事件
- private function clickHandler(e:MouseEvent):void
- {
- //当前面击的对象隐藏,也便是回位按钮隐藏
- e.currentTarget.visible = false;
- //num判断的数值回0,以便于再次判断拼图拼对了寂
- num = 0;
- //for为mci对象加减隐藏属性为true,x、y坐标为初初坐标,被拼图的对象截至播放正在第一帧上里
- for (var i:int = 0; i < 4; i++)
- {
- this["mc" + i].visible = true;
- this["mc" + i].x = arr[i*2];
- this["mc" + i].y = arr[i * 2 + 1];
- this["mc_" + i].gotoAndStop(1);
- }
- }
- }
- }
最初奉上我的祝愿:http://www.shengshiyouxi.com