起首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