我有這個問題: 我希望每次我點擊前。 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永遠不會增長,因爲所有其他情況都將在默認情況下處理... –