AS3 Projekt - Mouse Move Listener Reagieren, die Außerhalb der Anwendung

Ich bin immer ein ungewöhnliches Verhalten, dass ich kann nicht scheinen, um auf den Grund. Wenn ich diese ausführe, wenn ich mich bewege in der swf-Bereich wird es Spuren in der Regel auf der Maus verschieben. Zu erwarten.

Aber es ist die Ablaufverfolgung für das move-Ereignis aus, wenn ich auf überall auf dem Bildschirm. Wenn ich klicken und ziehen Sie die Spuren, als ob ich das verschieben in die swf-Bereich des Browsers.

Hier ist der code. Ich habe vereinfacht, es ist simpler. Nur setzen Sie diese in eine leere AS3-Projekt in Flex als "Motor" - sans-Zitate offensichtlich.

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 workaround habe ich hinzufügen das MOUSE_MOVE einem MOUSE_OVER und entfernen Sie Sie auf MOUSE_OUT. Aber das Verhalten scheint immer noch ziemlich ungewöhnlich, und ich würde sein Interesse zu verstehen, warum es passiert.

Kann mir jemand sagen, wie ich kann halten die Ereignisse begrenzt auf den tatsächlichen Zustand der Anwendung?

InformationsquelleAutor grey | 2009-05-30

Schreibe einen Kommentar