Domanda

Sto usando un itemRenderer tela di canapa per un contenitore che uso per visualizzare le immagini. Vedere pseudo codice qui sotto.

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

Quando il mouse sopra la tela, la funzione di zoom è chiamato. Tuttavia, non appena mi muovo il mouse sull'immagine, o di un altro elemento figlio, l'evento MOUSE_OUT è sparato.

Qualcuno mi può puntare nella direzione di un modo per disattivare questo comportamento?

Grazie:)

È stato utile?

Soluzione

Si dovrebbe usare MouseEvent.ROLL_OVER e MouseEvent.ROLL_OUT eventi invece.

Dalla documentazione di Flash CS4:

  

Quando il mouse entra nell'area di un oggetto di visualizzazione o l'area di uno dei suoi figli da un oggetto che non è uno dei suoi figli, l'oggetto di visualizzazione invia l'evento rollOver. Questo è il comportamento differente da quello della manifestazione mouseOver, che viene inviato ogni volta che il mouse entra nell'area di qualsiasi oggetto secondario del contenitore di oggetti di visualizzazione, anche se il topo era già su un altro oggetto secondario del contenitore di oggetti di visualizzazione.

Altri suggerimenti

Sono d'accordo con Josh che gli eventi ROLL_OVER sembrano più appropriato per quello che stai facendo. Tuttavia, si dovrebbe essere consapevoli del mouseChildren proprietà di flash.display.DisplayObjectContainer (un antenato di UIComponent).

Implementazione funziona per me. Circa il problema comboBox: Si può anche verificare se l'obiettivo della manifestazione è un bambino dal contenitore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top