Frage

Ich bin mit einem Canvas itemRenderer für einen Behälter ich Bilder anzuzeigen. Siehe Pseudo-Code unten.

image = new Image();
image.source = data.@thumb;
this.addChild(image);
this.addEventListener(MouseEvent.MOUSE_OVER, enlarge(image));
this.addEventListener(MouseEvent.MOUSE_OUT, shrink(image)); 

Wenn ich die Maus über die Leinwand, die vergrössern Funktion aufgerufen. Doch sobald ich die Maus auf das Bild bewegen, oder ein anderes Kind-Element, das MOUSE_OUT Ereignis ausgelöst wird.

Kann mich jemand in Richtung einer Art und Weise zeigt dieses Verhalten zu deaktivieren?

Danke:)

War es hilfreich?

Lösung

Sie sollten verwenden MouseEvent.ROLL_OVER und MouseEvent.ROLL_OUT Veranstaltungen statt.

Von der Flash CS4 Dokumentation:

  

Wenn die Maus den Bereich eines Anzeigeobjekts oder den Bereich eines seiner Kinder von einem Objekt gelangt, die nicht einer seiner Kinder ist, löst das Anzeigeobjekt das Überschlags-Ereignis. Dies ist ein anderes Verhalten als die des mouseover-Ereignis, das jedes Mal ausgelöst wird, die Maus den Bereich jedes Kind-Objekt des Anzeigeobjekt-Container eintritt, auch wenn die Maus bereits über ein anderes Kind-Objekt des Anzeigeobjekt-Container war.

Andere Tipps

ich mit Josh einig, dass die ROLL_OVER Ereignisse besser geeignet scheinen, was du tust. Allerdings sollten Sie sich der mouseChildren Eigentum von flash.display.DisplayObjectContainer (ein Vorfahre von UIComponent).

Roll-out funktioniert für mich. Über das comboBox Problem: Sie können auch überprüfen, ob das Ziel der Veranstaltung ein Kind aus dem Behälter ist.

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