2010-09-10 6 views

Répondre

2

Mon approche serait d'attacher des écouteurs d'événements pour MouseEvent.MOUSE_DOWN et SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE à la systemManager comme ceci:

systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 
systemManager.getSandboxRoot().addEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE, onMouseDown); 

De cette façon vous être averti de tout événement souris vers le bas et vous pouvez vérifier voir si l'événement se passe à l'intérieur de votre composant RichEditableText ou non.

Espérons que ça aide.

+0

Merci, mal essayer. – Max

0

Je ne sais pas si vous voulez dire le composant Spark RichEditableText ou Halo RichTextEditor mais ils distribuent des cas FlexMouseEvent.MOUSE_DOWN_OUTSIDE.

Si vous avez MXML vous pouvez écouter comme il:

<mx:RichTextEditor id="myText" mouseDownOutside="mouseDownOutsideFunction(event)" />

ou d'ActionScript comme:

myText.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE,mouseDownOutsideFunction);

espoir qui aide.

+0

J'ai essayé cela, mais il ne fonctionne que si RichEditableText se trouve dans une fenêtre contextuelle « Distribué par un composant ouvert à l'aide PopUpManager lorsque l'utilisateur clique extérieur » – Max

+0

Ah je vois. Qu'est-ce que vous essayez de faire? Peut-être qu'il y a un autre moyen. – Ryan

0

Après avoir cherché un problème similaire, sachez qu'il est plutôt ancien, mais plus utile aux autres.

Vous pouvez utiliser l'événement focusOut sur TextInput/RichEditableText. Tout clic en dehors de TextInput/RichEditableText déclenchera l'envoi d'un événement.

Ainsi: -

<s:RichEditableText id="textInput" focusOut="textInput_focusOutHandler(event)" /> 
Questions connexes