我有这个问题: 我希望每次我点击前。 PICA后,我点击PICB某事像这样Actionscript 3 - 在鼠标侦听器中添加鼠标侦听器?
trace("Clicked picB after A");
注:单击PICB不点击第一PICA,或单击其他地方像中国人保,然后PICB是行不通的
我有这个问题: 我希望每次我点击前。 PICA后,我点击PICB某事像这样Actionscript 3 - 在鼠标侦听器中添加鼠标侦听器?
trace("Clicked picB after A");
注:单击PICB不点击第一PICA,或单击其他地方像中国人保,然后PICB是行不通的
添加监听到所有图片你想在相同的功能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,就像我在默认情况下那样。
我认为这应该可以解决您的问题。
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");
}
好男人:)谢谢 –
那么,如果你有数百个对象呢?您的switch语句将按比例增长..不是最好的解决方案 – ZuzEL
switch永远不会增长,因为所有其他情况都将在默认情况下处理... –