J'ai un événement de déplacement personnalisé qui fonctionne très bien pour la plupart des choses:Comment détecter Event.MOUSE_LEAVE lorsque wmode = opaque ou transparent wmode =
stage.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
function beginDrag(e:MouseEvent)
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, drag);
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag);
stage.addEventListener(MouseEvent.DEACTIVATE, endDrag);
stage.addEventListener(Event.MOUSE_LEAVE, endDrag);
stage.addEventListener(Event.REMOVED_FROM_STAGE, stageEndDrag);
//trigger beginDrag event
}
function drag(e:MouseEvent)
{
//trigger drag event
}
function endDrag(e:Event)
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, drag);
stage.removeEventListener(MouseEvent.MOUSE_UP, endDrag);
stage.removeEventListener(MouseEvent.DEACTIVATE, endDrag);
stage.removeEventListener(Event.MOUSE_LEAVE, endDrag);
stage.removeEventListener(Event.REMOVED_FROM_STAGE, stageEndDrag);
//trigger endDrag event
}
Le problème est que lorsque j'utilise ce code avec wmode=transparent
ou wmode=opaque
l'événement MOUSE_LEAVE
n'est pas détecté lorsque l'événement MOUSE_UP
se produit hors scène.
Y at-il un moyen de détecter l'événement MOUSE_LEAVE
lorsque wmode
est transparent
ou opaque
?
OU
est-il un moyen de détecter que le wmode
est réglé sur transparent
ou opaque
de sorte qu'un travail autour peut être mis en œuvre?
@weltraumpirat Je n'avais jamais trouvé que l'événement 'MOUSE_LEAVE' ne soit pas fiable avant cela. Beaucoup de gens sont confus quant à * quand * l'événement 'MOUSE_LEAVE' est déclenché, comme cela arrive quand l'événement' MOUSE_UP' se produit * après que * la souris ait quitté la scène pendant que l'utilisateur fait glisser la souris. J'ai découvert que les événements de la souris ne sont pas gérés lorsque la souris est hors de la scène dans 'wmode = transparent/opaque', donc cette méthode ne fonctionnera probablement pas (même si je vais quand même essayer). – zzzzBov
Si vous rencontrez des problèmes avec cela, vous pouvez toujours utiliser un écouteur ENTER_FRAME à la place. Je préfère utiliser MOUSE_MOVE si je le peux, car il n'est pas utilisé aussi souvent. – weltraumpirat
@weltraumpirat, Aucun des événements souris n'est déclenché lorsque la souris quitte la scène (pas même l'événement 'MOUSE_OUT'). Si la souris a été relâchée ou enfoncée, les nouveaux événements de souris n'enregistrent pas non plus la valeur correcte pour 'buttonDown'. Je ne vois pas comment un écouteur 'ENTER_FRAME' pourrait aider. – zzzzBov