我遇到了这个问题:我希望每次点击前。picA,在我像这样点击 picB 之后
trace("Clicked picB after A");
注意:单击 picB 而不单击第一个 picA,或单击 picC 之类的其他位置,然后 picB 将不起作用
我遇到了这个问题:我希望每次点击前。picA,在我像这样点击 picB 之后
trace("Clicked picB after A");
注意:单击 picB 而不单击第一个 picA,或单击 picC 之类的其他位置,然后 picB 将不起作用
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");
}
在同一函数 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,就像我在默认情况下所做的那样。
我认为这应该可以解决您的问题。