Erfassen von Mauseingaben

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Mausklicks erzeugen Mausereignisse, die zum Auslösen interaktiver Funktionen verwendet werden können. Sie können der Bühne einen Ereignis-Listener für sämtliche Mausereignisse innerhalb einer SWF-Datei hinzufügen. Sie können auch Ereignis-Listener für Objekte auf der Bühne hinzufügen, die von der InteractiveObject-Klasse erben (beispielsweise Sprite- oder MovieClip-Objekte). Diese Listener werden ausgelöst, wenn auf das entsprechende Objekt geklickt wird.

Wie bei Tastaturereignissen wird auch bei Mausereignissen die Aufstiegsphase durchlaufen. Da im folgenden Beispiel square ein der Bühne untergeordnetes Objekt ist, wird beim Klicken auf das Rechteck sowohl von der Sprite-Instanz square als auch vom Stage-Objekt ein Ereignis ausgelöst:

var square:Sprite = new Sprite(); 
square.graphics.beginFill(0xFF0000); 
square.graphics.drawRect(0,0,100,100); 
square.graphics.endFill(); 
square.addEventListener(MouseEvent.CLICK, reportClick); 
square.x = 
square.y = 50; 
addChild(square); 
 
stage.addEventListener(MouseEvent.CLICK, reportClick); 
 
function reportClick(event:MouseEvent):void 
{ 
    trace(event.currentTarget.toString() +         " dispatches MouseEvent. Local coords [" +         event.localX + "," + event.localY + "] Stage coords [" +         event.stageX + "," + event.stageY + "]"); 
}

Beachten Sie, dass im obigen Beispiel das Mausereignis Positionsangaben für den Mausklick enthält. Die Eigenschaften localX und localY enthalten die Mausklickposition im letzten untergeordneten Objekt der Anzeigekette. Beispielsweise führt das Klicken auf die obere linke Ecke von square zur Anzeige der lokalen Koordinaten [0,0], da dies der Registrierungspunkt von square ist. Alternativ verweisen die Eigenschaften stageX und stageY auf die globalen Koordinaten des Mausklicks auf der Bühne. Für denselben Mausklick wird für diese Koordinaten [50,50] angezeigt, da square auf diese Koordinaten verschoben wurde. Beide Koordinatenpaare können nützlich sein, je nachdem, wie Sie auf Benutzerinteraktionen reagieren möchten.

Hinweis: Im Vollbildmodus können Sie die Anwendung so konfigurieren, dass die Maussperre verwendet wird. Bei einer Maussperre ist der Cursor deaktiviert und unbegrenzte Mausbewegungen sind möglich. Weitere Informationen finden Sie unter Verwenden des Vollbildmodus .

Das MouseEvent-Objekt enthält auch die booleschen Eigenschaften altKey , ctrlKey und shiftKey . Mithilfe dieser Eigenschaften können Sie überprüfen, ob zum Zeitpunkt des Mausklicks auch die Tasten ALT, STRG oder die UMSCHALTTASTE gedrückt wurden.

Ziehen von Sprite-Objekten auf der Bühne

Mit der startDrag() -Methode der Sprite-Klasse können Sie Benutzern die Möglichkeit geben, Sprite-Objekte auf der Bühne zu ziehen. Im folgenden Code ist ein Beispiel hierfür dargestellt:

import flash.display.Sprite; 
import flash.events.MouseEvent; 
 
var circle:Sprite = new Sprite(); 
circle.graphics.beginFill(0xFFCC00); 
circle.graphics.drawCircle(0, 0, 40); 
 
var target1:Sprite = new Sprite(); 
target1.graphics.beginFill(0xCCFF00); 
target1.graphics.drawRect(0, 0, 100, 100); 
target1.name = "target1"; 
 
var target2:Sprite = new Sprite(); 
target2.graphics.beginFill(0xCCFF00); 
target2.graphics.drawRect(0, 200, 100, 100); 
target2.name = "target2"; 
 
addChild(target1); 
addChild(target2); 
addChild(circle); 
 
circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown)  
 
function mouseDown(event:MouseEvent):void 
{ 
    circle.startDrag(); 
} 
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); 
 
function mouseReleased(event:MouseEvent):void 
{ 
    circle.stopDrag(); 
    trace(circle.dropTarget.name); 
}

Weitere Einzelheiten finden Sie im Abschnitt zum Erstellen von Interaktionen durch Ziehen mit der Maus unter Ändern der Position .

Ziehen und Ablegen in AIR

In Adobe AIR können Sie Drag&Drop-Unterstützung aktivieren, damit Benutzer Daten in die Anwendung und aus der Anwendung ziehen können. Weitere Einzelheiten finden Sie unter Ziehen und Ablegen in AIR .

Anpassen des Mauszeigers

Der Mauszeiger kann ausgeblendet oder auch mit einem beliebigen Anzeigeobjekt auf der Bühne ausgetauscht werden. Wenn Sie den Mauszeiger ausblenden möchten, rufen Sie die Mouse.hide() -Methode auf. Passen Sie den Mauszeiger an, indem Sie Mouse.hide() aufrufen, auf das MouseEvent.MOUSE_MOVE -Ereignis für die Bühne warten und die Koordinaten eines Anzeigeobjekts (benutzerdefinierter Mauszeiger) auf die stageX -Eigenschaft und die stageY -Eigenschaft des Ereignisses setzen. Im folgenden Beispiel wird die grundlegende Vorgehensweise veranschaulicht:

var cursor:Sprite = new Sprite(); 
cursor.graphics.beginFill(0x000000); 
cursor.graphics.drawCircle(0,0,20); 
cursor.graphics.endFill(); 
addChild(cursor); 
 
stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor); 
Mouse.hide(); 
 
function redrawCursor(event:MouseEvent):void 
{ 
    cursor.x = event.stageX; 
    cursor.y = event.stageY; 
}