//取得進入.swf檔後按下開始按鈕前的等待時間 var waittime=Math.floor(getTimer()/1000); //計算正確遊戲時間並顯示在畫面上欄位 function count(){ //進入本.swf檔案後總時間減去等待時間就是玩遊戲時間,存入gametime變數 var gametime=Math.floor(getTimer()/1000)- waittime; time_txt.text=gametime;//畫面上文字欄位顯示玩遊戲時間 } //每1000毫秒(1秒鐘)觸發count函數一次 var timeCount=setInterval(count,1000); var picok=0; //新增picok變數,紀錄拼圖正確數,預設0 ok_mc.visible=false; //過關按鈕先隱藏 //----------------------------------------------------------------------- //for迴圈為4個拼圖影片片段加入事件偵聽 for(var i:int=1;i<=4;i++){ //with()函數,統一為4個拼圖影片片段指定事件 with(this['pic'+i+'_mc']){ //設定拼圖影片片段元件buttonMode模式為true buttonMode = true; //拼圖偵聽MOUSE_DOWN事件,發生自訂drag函數 addEventListener(MouseEvent.MOUSE_DOWN,drag); //拼圖偵聽MOUSE_UP事件,發生自訂dragStop函數 addEventListener(MouseEvent.MOUSE_UP,dragStop); } } // 上面那段程式等同下面效果 // 設定拼圖影片片段元件buttonMode模式為true // pic1_mc.buttonMode = true; // pic2_mc.buttonMode = true; // pic3_mc.buttonMode = true; // pic4_mc.buttonMode = true; //拼圖偵聽MOUSE_DOWN事件,發生自訂drag函數 // pic1_mc.addEventListener(MouseEvent.MOUSE_DOWN,drag); // pic2_mc.addEventListener(MouseEvent.MOUSE_DOWN,drag); // pic3_mc.addEventListener(MouseEvent.MOUSE_DOWN,drag); // pic4_mc.addEventListener(MouseEvent.MOUSE_DOWN,drag); //拼圖偵聽MOUSE_UP事件,發生自訂dragStop函數 // pic1_mc.addEventListener(MouseEvent.MOUSE_UP,dragStop); // pic2_mc.addEventListener(MouseEvent.MOUSE_UP,dragStop); // pic3_mc.addEventListener(MouseEvent.MOUSE_UP,dragStop); // pic4_mc.addEventListener(MouseEvent.MOUSE_UP,dragStop); // ----------------------------------------------------------------------------------- //drag函數,定義在圖片上按下按鈕時發生動作 function drag(me:MouseEvent):void{ me.currentTarget.useHandCursor = true;//這個影片片段顯示手指游標 var object=me.target;//取得目標名稱 if(object.enabled==true){//拖曳前先判斷如果元件啟用狀態為true,才能拖曳 //將目標交換到容器(這個場景)的最上方 this.setChildIndex(object,this.numChildren-1); //開始拖曳目標 me.currentTarget.startDrag(); } } //dragStop函數,定義放開圖片發生動作 function dragStop(me:MouseEvent):void{ me.currentTarget.stopDrag();//停止拖曳 var object=me.target;//取得目標名稱 //依據拖曳對象,作不同碰觸偵測判別及圖片定位 switch(object){ case pic1_mc : if (me.currentTarget.hitTestObject(hittest1)){ pic1_mc.x=59;pic1_mc.y=95; //如果拼圖pic1_mc啟用狀態為true,picok變數才能+1 if(pic1_mc.enabled ==true){picok++;} //拼圖pic1_mc拖曳到正確位置後,設定pic1_mc啟用狀態為false,供拖曳判斷 pic1_mc.enabled = false; }//如果圖片碰觸偵測ok,圖片移到設定位置,picok變數+1 break; case pic2_mc : if (me.currentTarget.hitTestObject(hittest2)){ pic2_mc.x=224.9;pic2_mc.y=95; //如果拼圖pic2_mc啟用狀態為true,picok變數才能+1 if(pic2_mc.enabled ==true){picok++;} //拼圖pic2_mc拖曳到正確位置後,設定pic2_mc啟用狀態為false,供拖曳判斷 pic2_mc.enabled = false; } break; case pic3_mc : if (me.currentTarget.hitTestObject(hittest3)){ pic3_mc.x=59;pic3_mc.y=323; //如果拼圖pic3_mc啟用狀態為true,picok變數才能+1 if(pic3_mc.enabled ==true){picok++;} //拼圖pic3_mc拖曳到正確位置後,設定pic3_mc啟用狀態為false,供拖曳判斷 pic3_mc.enabled = false; } break; case pic4_mc : if (me.currentTarget.hitTestObject(hittest4)){ pic4_mc.x=224.9;pic4_mc.y=323; //如果拼圖pic4_mc啟用狀態為true,picok變數才能+1 if(pic4_mc.enabled ==true){picok++;} //拼圖pic4_mc拖曳到正確位置後,設定pic4_mc啟用狀態為false,供拖曳判斷 pic4_mc.enabled = false; } break; } //如果累積4張圖片正確判定,過關按鈕顯示,並停止遊戲時間計算 if (picok==4) { ok_mc.visible=true; clearInterval(timeCount); } }