0

我遇到了这个问题:我希望每次点击前。picA,在我像这样点击 picB 之后

trace("Clicked picB after A");

注意:单击 picB 而不单击第一个 picA,或单击 picC 之类的其他位置,然后 picB 将不起作用

4

2 回答 2

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");
}
于 2013-07-21T01:08:58.197 回答
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;
   }
}

在这种情况下,如果单击 picA,则将布尔值设置为 true,如果接下来单击 picB,则检查最近是否单击了 picA。如果是,那么您可以做任何您想做的事情,否则将布尔值设置为 false。如果单击任何其他图片,那么您只需将布尔值设置为 false,就像我在默认情况下所做的那样。

我认为这应该可以解决您的问题。

于 2013-07-21T07:46:49.700 回答