Ich bekomme ein ungewöhnliches Verhalten, das ich nicht auf den Grund zu kommen scheinen. Wenn ich das mache, wenn ich in den SWF-Bereich gehe, verfolgt es normalerweise beim Bewegen der Maus. Zu erwarten.AS3 Projekt - Maus Move Listener Reagieren außerhalb der Anwendung
Aber es ist Ablaufverfolgung für das Ereignis bewegen, wenn ich überall auf dem Bildschirm klicken. Wenn ich klicke und ziehe, zeichnet es auf, als ob ich mich im SWF-Bereich des Browsers bewegen würde.
Hier ist der Code. Ich habe es zu Barebones vereinfacht. Setzen Sie das einfach in ein leeres AS3-Projekt in Flex namens "Engine" - offensichtlich ohne Anführungszeichen.
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");
}
}
}
Als Abhilfe, die ich die MOUSE_MOVE ein MOUSE_OVER hinzufügen haben und entfernen Sie sie auf MOUSE_OUT. Aber das Verhalten scheint immer noch ziemlich ungewöhnlich und ich wäre daran interessiert zu verstehen, warum es passiert.
Kann mir jemand sagen, wie ich die Ereignisse auf die tatsächliche Phase der Anwendung beschränkt halten kann?
Ja, das Sinn machen würde. Dies ist nicht das Verhalten, auf das ich mich beziehe. Wenn ich auf dem Bildschirm * ANYWHERE * klicke ... eine andere Anwendung, eine Apple-Leiste, was auch immer ... es registriert ein Move-Event. Auch wenn es für Flash keinen möglichen Fokus gibt. – grey
Entschuldigung, ich kann dieses Verhalten nicht mit Ihrem Code reproduzieren. Können Sie weitere Details wie FP-Version, OS, ... posten –
Sicher, tut mir leid für die Verzögerung in der Antwort. Flash Player-Version - Debug, MAC 10,0,22,87 – grey