Come fermare evento mouse fuori su Flex Tela sparare per gli elementi figlio
-
05-09-2019 - |
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:)
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.