Wie zu deaktivieren und wieder zu aktivieren Mausevents; buttonMode, mouseChildren und aktivieren funktioniert nicht

Grundsätzlich die Frage könnte wohl eher sein, genauer gefragt, wie kann ich deaktivieren Sie einfach eine Taste und dann wieder aktivieren? Ich habe versucht Einstellung buttonMode auf false, mouseChildren auf false und enabled auf false. Nichts funktioniert. Ich weiß, ich könnte entfernen Sie einfach die Ereignis-Listener, aber sicher gibt es eine elegantere und effizientere Art und Weise. Entfernen Sie den Ereignis-Listener würde mich zwingen, mich zu verfolgen, welche Funktionen beziehen sich auf bestimmte button-Staaten und haben das hinzufügen und entfernen von Ihnen immer und immer wieder, das scheint umständlich.

Gibt es eine Möglichkeit, ein flag zu setzen, das macht die vorübergehend deaktiviert alle eventListeners ein Objekt haben könnte, und dann einfach schalten Sie Sie wieder ein? Ich war in der irrigen Annahme, dass das hinzufügen von rollOver-Ereignisse usw.., um einen MovieClip konvertiert es in der Theorie auf eine Schaltfläche, in der man sich einfach ausgeschaltet mit der enabled-Eigenschaft. Auch kann ich nicht verwenden, SimpleButton, wie ich mehr Flexibilität benötigen, als es bietet.

Ich habe eine benutzerdefinierte Klasse, nicht umgehen Sie alle diese Funktionen, und macht das Leben einfacher, aber ich Frage mich, ob es da eine out-of-the-box-offiziellen Weg.

Unten ist ein Isoliertes Beispiel verwendet einen MovieClip auf der Bühne mit dem Instanznamen " iPoo, wo die Ereignisse immer ausgelöst, unabhängig davon, was wird gesetzt, wenn Sie auf die Schaltfläche klicken:

iPoo.addEventListener(MouseEvent.ROLL_OVER, pooRollOver);

iPoo.addEventListener(MouseEvent.ROLL_OUT, pooRollOut);

iPoo.addEventListener(MouseEvent.KLICKEN Sie auf, pooClick);

Funktion pooRollOver(_event:MouseEvent):void

{

iPoo.alpha = 0.5;  

}

Funktion pooRollOut(_event:MouseEvent):void

{

iPoo.alpha = 1;  

}

Funktion pooClick(_event:MouseEvent):void

{

trace("Poo");  

iPoo.enabled = false;  
iPoo.buttonMode = false;  
iPoo.mouseChildren = false;  

}

Schreibe einen Kommentar