2013-07-21 363 views

回答

0

添加監聽到所有圖片你想在相同的功能onClick。這樣

picA.addEventListener(MouseEvent.CLICK, onClick); 
    picB.addEventListener(MouseEvent.CLICK, onClick); 
    picC.addEventListener(MouseEvent.CLICK, onClick); 
    picD.addEventListener(MouseEvent.CLICK, onClick); 

採取一個布爾變量,如果PICA是最近

var isAClicked:Boolean = false; 

function onClick(e:MouseEvent):void 
{ 
switch (e.currentTarget.name) 
{ 
    case 'picA' : 
     isAClicked = true; 
     break; 
    case 'picB' : 
     if (isAClicked) 
     { 
      trace("Clicked picB after A"); 
     } 
     else 
     { 
      isAClicked = false; 
     } 
     break; 
    default : 
     isAClicked = false; 
     break; 
    } 
} 

點擊了這一點,如果點擊了異食癖,然後你的布爾值設置爲true,如果PICB點擊下一步,然後你它定義檢查最近的picA是否被點擊。如果是,那麼你做任何你想要的,否則將布爾值設置爲false。如果單擊其他圖片,則只需將布爾值設置爲false,就像我在默認情況下那樣。

我認爲這應該可以解決您的問題。

+0

好男人:)謝謝 –

+0

那麼,如果你有數百個對象呢?您的switch語句將按比例增長..不是最好的解決方案 – ZuzEL

+1

switch永遠不會增長,因爲所有其他情況都將在默認情況下處理... –

1
stage.addEventListener(MouseEvent.CLICK,onStageClick) 


private function onStageClick(e:MouseEvent):void 
{ 
    // to have only one PicB listener use removeEventListener before adding 
    picB.removeEventListener(MouseEvent.CLICK,onPicBClick) 
    if(e.target === picA){ 
     picB.addEventListener(MouseEvent.CLICK,onPicBClick) 
    } 
} 

private function onPicBClick(e:MouseEvent):void 
{ 
    picB.removeEventListener(MouseEvent.CLICK, onPicBClick) 
    trace("Clicked picB after A"); 
} 
相關問題