Je commence à avoir un comportement inhabituel que je n'arrive pas à comprendre. Quand je cours ceci, si je bouge dans la zone de swf il trace normalement sur le mouvement de souris. Être attendu.Projet AS3 - Écouteur de déplacement de souris réagissant en dehors de l'application
Mais il trace pour l'événement de déplacement lorsque je clique n'importe où à l'écran. Si je clique et fais glisser, il trace comme si je me déplaçais dans la zone swf du navigateur.
Voici le code. J'ai simplifié à son barebones. Il suffit de mettre cela dans un projet AS3 vide dans Flex appelé "Moteur" - sans les guillemets évidemment.
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
[SWF(width='640', height='360', backgroundColor='#888888', frameRate='31')]
public class Engine extends Sprite
{
public function Engine()
{
// Add the mouse handlers
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
public function mouseMoveHandler(evt:MouseEvent):void
{
trace("move");
}
}
}
Pour contourner ce problème, j'ai ajouter le MOUSE_MOVE un MOUSE_OVER et retirez-le sur MOUSE_OUT. Mais le comportement semble toujours assez inhabituel et je serais intéressé à comprendre pourquoi cela se passe.
Quelqu'un peut-il me dire comment je peux garder les événements contraints à l'étape actuelle de l'application?
Oui, ce serait logique. Ce n'est pas le comportement dont je parle. Si je clique sur * N'IMPORTE O * * sur l'écran ... une autre application, une barre d'Apple, peu importe ... elle enregistre un événement de mouvement. Même s'il n'y a aucun moyen possible pour Flash d'avoir le focus. – grey
Désolé, je ne peux pas reproduire ce comportement avec votre code. Pouvez-vous poster plus de détails comme la version FP, OS, ... –
Certainement, désolé pour le retard dans la réponse. Version Flash Player - Mise au point, MAC 10,0,22,87 – grey