Wie zu deaktivieren und wieder aktivieren Mausevents; button, mousechildren und ermöglichen nicht funktionieren

StackOverflow https://stackoverflow.com/questions/1431647

Frage

Im Prinzip könnte die Frage wohl eher noch genauer gefragt, wie kann ich einfach eine Taste deaktivieren und dann wieder aktivieren? Ich habe versucht, auf false button, mousechildren auf false gesetzt und aktiviert werden, damit falsch. Nichts funktioniert. Ich weiß, ich könnte nur den Ereignis-Listener entfernen, aber sicherlich gibt es eine elegante und effiziente Art und Weise. die Ereignis-Listener als Entfernen würde mich zwingen, den Überblick zu behalten, welche Funktionen auf bestimmte Tastenzustände beziehen und müssen sie hinzufügen und entfernen Sie immer und immer wieder, was klobig zu sein scheint.

Gibt es eine Möglichkeit, eine Flagge zu setzen, die vorübergehend keine Ereignis-Listenern deaktiviert macht ein Objekt haben könnte und sich dann einfach wieder einschalten? Ich war unter dem Missverständnis, dass Ereignisse rollover etc .. Hinzufügen zu einem MovieClip- es in der Theorie auf eine Schaltfläche konvertiert, in denen leicht mit der Eigenschaft enabled ausgeschaltet werden kann. Auch ich kann nicht SimpleButton- verwenden, da ich mehr Flexibilität benötigen, als es zur Verfügung stellt.

Ich habe eine benutzerdefinierte Klasse erstellt, die diese alle Funktionen bieten handhaben und machen das Leben einfach, aber ich frage mich, ob es als Out-of-the-box offiziellen Weg.

Im Folgenden ist ein isoliertes Beispiel, die eine MovieClip- auf der Bühne mit dem Instanznamen iPoo verwendet, wo die Ereignisse unabhängig von immer feuern, was eingestellt wird, wenn Sie auf die Schaltfläche klicken:

iPoo.addEventListener (MouseEvent.ROLL_OVER, pooRollOver);
iPoo.addEventListener (MouseEvent.ROLL_OUT, pooRollOut);
iPoo.addEventListener (MouseEvent.CLICK, 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;  

}

War es hilfreich?

Lösung

Mit der mouseen Eigenschaft.

mc.mouseEnabled = false;

von LiveDocs:

  

Wenn aktiviert Wenn diese Option aktiviert ist auf false gesetzt, die über den Movieclip, Down- und sind Up-Frames deaktiviert. Der Movieclip weiterhin Ereignisse empfangen (zum Beispiel mouseDown-, mouseUp, keyDown und keyUp).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top