2011-09-23 5 views
5

Existe-t-il un moyen de simuler un événement de clic dans AS3? J'essaye ceci:Simuler un événement de clic dans AS3

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false)); 

Mais l'événement de clic n'est pas le déclencher.

+0

Quel élément essayez-vous de simuler le clic? – stormbreaker

Répondre

20

Si vous écoutez pour MouseEvent.CLICK, puis il transmet MouseEvent.CLICK. Vous dispatching maintenant MouseEvent.MOUSE_DOWN

element.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
+0

Je suis curieux, est le gestionnaire d'expédition de Flash qui prévient le déclenchement de l'événement MOUSE_DOWN? – eLouai

+0

@eLouai si vous écoutez un événement 'MOUSE_DOWN', Flash ne gérera pas les événements' CLICK', et vice versa. L'événement 'MOUSE_DOWN' est déclenché lorsque vous cliquez sur la souris, le' MOUSE_UP' lorsque vous relâchez la souris. L'événement 'CLICK' est équivalent à un' MOUSE_DOWN' suivi d'un 'MOUSE_UP'. Cependant, l'envoi séparé de "MOUSE_DOWN" et de "MOUSE_UP" ne déclenchera pas un événement "CLICK". –

+0

Selon les documents d'Adobe, ils l'indiquent clairement ... "Pour qu'un événement click se produise, il doit toujours suivre cette série d'événements dans l'ordre d'occurrence: mouseDown, puis mouseUp L'objet cible doit être identique pour ces deux événements, sinon l'événement click ne se produira pas Un nombre quelconque d'autres événements de souris peuvent se produire à tout moment entre les événements mouseDown et mouseUp; se produit toujours. " mais malheureusement, je semble incapable de l'affecter, donc soit le système écoute un autre flux d'événements auquel il réagit, soit il y a un bug. – eLouai

3

Vous devez envoyer un événement MouseEvent.CLICK.

element.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false)); 
0

Pour simuler un événement de clic vous devez d'abord l'expédition:

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false)); 

suivi d'un:

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, true, false)); 

En cas MOUSE_UP le gestionnaire émettra un événement click (si la souris est sur l'élément, vous devrez peut-être définir les variables mouse_x et mouse_y dans l'événement distribué.)

Questions connexes