Muisklikken maken muisgebeurtenissen die kunnen worden gebruikt om interactieve functionaliteit te activeren. U kunt een gebeurtenislistener aan het werkgebied toevoegen om te luisteren naar muisgebeurtenissen die ergens in het SWF-bestand optreden. U kunt ook gebeurtenislisteners aan objecten in het werkgebied toevoegen die het interactiemodel van InteractiveObject overerven (bijvoorbeeld Sprite of MovieClip); deze listeners worden geactiveerd wanneer op het object wordt geklikt.
Net als toetsenbordgebeurtenissen, worden ook muisgebeurtenissen teruggekoppeld. In het volgende voorbeeld wordt de gebeurtenis zowel vanuit de sprite
square
als vanuit het object Stage verzonden wanneer er op square wordt geklikt, aangezien
square
een onderliggend object van Stage is:
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 + "]");
}
In het vorige voorbeeld bevat de muisgebeurtenis positiegegevens over de klik. De eigenschappen
localX
en
localY
bevatten de locatie van de klik op het item op het laagste niveau in de weergaveketen. Wanneer er bijvoorbeeld in de linkerbovenhoek van
square
wordt geklikt, worden de lokale coördinaten [0,0] gemeld, aangezien dit het registratiepunt van
square
is. De eigenschappen
stageX
en
stageY
verwijzen daarentegen naar de algemene coördinaten van de klik in het werkgebied. Bij dezelfde klik wordt [50,50] voor deze coördinaten gemeld, aangezien
square
naar deze coördinaten is verplaatst. Beide coördinatenparen kunnen nuttig zijn, al naar gelang de wijze waarop u op gebruikersinteractie wilt reageren.
Opmerking:
In de modus Volledig scherm kunt u de toepassing zodanig configureren dat muisvergrendeling wordt gebruikt. Bij de muisvergrendeling wordt de cursor uitgeschakeld en kan de muis zonder begrenzingen worden verplaatst. Zie
Werken met de modus Volledig scherm
voor meer informatie.
Het object MouseEvent bevat ook de Booleaanse eigenschappen
altKey
,
ctrlKey
en
shiftKey
. U kunt deze eigenschappen gebruiken om te controleren of er tijdens de muisklik ook op Alt, Ctrl of Shift wordt gedrukt.
Sprites door het werkgebied slepen
Aan de hand van de methode
startDrag()
van de klasse Sprite kunt u toestaan dat gebruikers een Sprite-object door het werkgebied slepen. In de volgende code wordt hiervan een voorbeeld gegeven:
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);
}
Zie in
De positie wijzigen
de sectie over het maken van muisinteractie voor slepen-en-neerzetten voor meer informatie.
Slepen en neerzetten in AIR
In Adobe AIR kunt u ondersteuning voor slepen en neerzetten inschakelen zodat gebruikers gegevens uit en naar uw toepassing kunnen slepen. Zie
Slepen en neerzetten in AIR
voor meer informatie.
De muiscursor aanpassen
De muiscursor (muisaanwijzer) kan worden verborgen of vervangen door een weergaveobject in het werkgebied. Als u de muiscursor wilt verbergen, roept u de methode
Mouse.hide()
aan. U kunt de cursor aanpassen door
Mouse.hide()
aan te roepen, in het werkgebied naar de gebeurtenis
MouseEvent.MOUSE_MOVE
te luisteren en de coördinaten van een weergaveobject (de aangepaste cursor) in te stellen op de eigenschappen
stageX
en
stageY
van de gebeurtenis. In het volgende voorbeeld wordt een eenvoudige uitvoering van deze taak weergegeven:
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;
}