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;
}