2013-07-21 257 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"); 
} 
相关问题