Gesthändelser hanteras på samma sätt som enkla pekhändelser. Du kan lyssna efter en serie gesthändelser som definieras av konstanterna för händelsetypen i klassen
TransformGestureEvent
,
GestureEvent
och
PressAndTapGestureEvent
.
Så här hanterar du en pekhändelse med gester:
-
Ange att programmet ska hantera gester genom att ange egenskapen
flash.ui.Multitouch.inputMode
till
MultitouchInputMode.GESTURE
.
-
Bifoga en händelseavlyssnare till en instans av en klass som ärver egenskaperna från klassen InteractiveObject, till exempel Sprite eller TextField.
-
Ange vilken typ av gesthändelse som ska hanteras.
-
Anropa en händelsehanterare som ska göra något som svar på händelsen.
I följande exempel visas till exempel ett meddelande när någon sveper vid den fyrkant som ritats på
mySprite
på en pekskärm:
Multitouch.inputMode=MultitouchInputMode.GESTURE;
var mySprite:Sprite = new Sprite();
var myTextField:TextField = new TextField();
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0,0,40,40);
addChild(mySprite);
mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE, swipehandler);
function swipehandler(evt:TransformGestureEvent): void {
myTextField.text = "I've been swiped";
myTextField.y = 50;
addChild(myTextField);
}
Pekhändelser som baseras på två fingrar hanteras på samma sätt, men använder klassen GestureEvent:
Multitouch.inputMode=MultitouchInputMode.GESTURE;
var mySprite:Sprite = new Sprite();
var myTextField:TextField = new TextField();
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0,0,40,40);
addChild(mySprite);
mySprite.addEventListener(GestureEvent. GESTURE_TWO_FINGER_TAP, taphandler);
function taphandler(evt:GestureEvent): void {
myTextField.text = "I've been two-finger tapped";
myTextField.y = 50;
addChild(myTextField);
}
Tryck-och-peka-händelser hanteras också på samma sätt, men använder klassen PressAndTapGestureEvent:
Multitouch.inputMode=MultitouchInputMode.GESTURE;
var mySprite:Sprite = new Sprite();
var myTextField:TextField = new TextField();
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0,0,40,40);
addChild(mySprite);
mySprite.addEventListener(PressAndTapGestureEvent. GESTURE_PRESS_AND_TAP, taphandler);
function taphandler(evt:PressAndTapGestureEvent): void {
myTextField.text = "I've been press-and-tapped";
myTextField.y = 50;
addChild(myTextField);
}
Obs!
Alla GestureEvent-, TransformGestureEvent- och PressAndTapGestureEvent-hänselsetyper stöds inte i alla körningsmiljöer. Alla enheter med pekskärm kan till exempel inte identifiera svepningar med flera fingrar. Händelserna
gestureSwipe
för InteractiveObject stöds därför inte på dessa enheter. Testa om olika händelser stöds så att du kan vara säker på att programmet fungerar som det ska. Se
Felsökning
för mer information.
Egenskaper för gesthändelser
Gesthändelser har färre händelseegenskaper än enkla pekhändelser. Du får tillgång till dem på samma sätt, via händelseobjektet för händelsehanteraren.
I följande kod roteras till exempel
mySprite
när användaren utför en rotationsgest på den. I textfältet visas den grad av rotation som använts sedan den senaste gesten (vid testning av koden ser du till att rotera den flera gånger för att se om värdena ändras):
Multitouch.inputMode=MultitouchInputMode.GESTURE;
var mySprite:Sprite = new Sprite();
var mySpriteCon:Sprite = new Sprite();
var myTextField:TextField = new TextField();
myTextField.y = 50;
addChild(myTextField);
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(-20,-20,40,40);
mySpriteCon.addChild(mySprite);
mySprite.x = 20;
mySprite.y = 20;
addChild(mySpriteCon);
mySprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE, rothandler);
function rothandler(evt:TransformGestureEvent): void {
evt.target.parent.rotationZ += evt.target.rotation;
myTextField.text = evt.target.parent.rotation.toString();
}
Obs!
Alla TransformGestureEvent-egenskaper stöds inte i alla körningsmiljöer. Alla enheter med pekskärm kan till exempel inte identifiera en gestrotation på skärmen. Egenskapen
TransformGestureEvent.rotation
stöds därför inte på dessa enheter. Testa om olika egenskaper stöds så att du kan vara säker på att programmet fungerar som det ska. Se
Felsökning
för mer information.