ActionScript 3.0 語法結構的基本寫法與 2.0 不太一樣

首先 ActionScript 3.0 必須先將程式片段寫在「函式 function」之內

然後再用「偵聽 addEventListener」的方式讓場景上的物件去執行「函式 function」


function QQQ(EE:MouseEvent) {
   程式~程式~程式~程式~;
   程式~程式~程式~程式~;
   程式~程式~程式~程式~;
}

場景上的物件.addEventListener(MouseEvent.CLICK,QQQ);



以上範例就是先將程式寫在 QQQ 的「函式 function」之內

然後再用場景上的物件去「偵聽」 QQQ 函式


ActionScript 3.0 除了「偵聽」還有一個「移除偵聽 removeEventListener」的方法

「移除偵聽 removeEventListener」顧名思義就是場景上的物件正在執行的「函式 function」移除

場景上的物件就不會再執行「函式 function」內的程式了

----------------------------------------------------------------------------------

MENU_mc.addEventListener(MouseEvent.ROLL_OVER,MENU_MOVE);
MENU_mc.addEventListener(MouseEvent.ROLL_OUT,MENU_MOVE);

var MENU_SPEED:uint=35;

function MENU_MOVE(EE:MouseEvent) {
 if (EE.type=="rollOver") {
  MENU_mc.addEventListener(Event.ENTER_FRAME,MENU_OUT);
  MENU_mc.removeEventListener(Event.ENTER_FRAME,MENU_BACK);
 }
 if (EE.type=="rollOut") {
  MENU_mc.addEventListener(Event.ENTER_FRAME,MENU_BACK);
  MENU_mc.removeEventListener(Event.ENTER_FRAME,MENU_OUT);
 }
}

function MENU_OUT(EE:Event) {
 if (MENU_mc.x<=10) {
  MENU_mc.x=10;
 } else {
  MENU_mc.x-=MENU_SPEED;
 }
}

function MENU_BACK(EE:Event) {
 if (MENU_mc.x>=670) {
  MENU_mc.x=670;
 } else {
  MENU_mc.x+=MENU_SPEED;
 }
}

 

範例解說:

這個範例場景上的物件名稱為「MENU_mc」

第1、2行:讓 MENU_mc 去偵聽 「MENU_MOVE 函式」,分別設定 ROLL_OVER 和 ROLL_OUT 兩個滑鼠事件

第7~9行:當滑鼠事件是 ROLL_OVER 時,就會再偵聽「MENU_OUT 函式」,並移除偵聽「MENU_BACK 函式」

第11~13行:當滑鼠事件是 ROLL_OUT 時,就會再偵聽「MENU_BACK 函式」,並移除偵聽「MENU_OUT 函式」

第17~23行:「MENU_OUT 函式」內的程式的功能就是讓 MENU_mc 物件的 x 座標滑出來到場景中間

第25~31行:「MENU_BACK 函式」內的程式的功能就是讓 MENU_mc 物件的 x 座標滑出去到場景外面



arrow
arrow
    全站熱搜

    雞蛋貓異想世界 發表在 痞客邦 留言(0) 人氣()