Er zijn twee methoden toegevoegd aan de
Sprite-klasse
om aanvullende ondersteuning te bieden voor toepassingen met aanraakinvoer:
Sprite.startTouchDrag()
en
Sprite.stopTouchDrag()
. Deze methoden gedragen zich hetzelfde als
Sprite.startDrag()
en
Sprite.stopDrag()
bij muisgebeurtenissen. Bij de twee methoden
Sprite.startTouchDrag()
en
Sprite.stopTouchDrag()
worden echter ook
touchPointID
-waarden geaccepteerd als parameter.
De runtime wijst de
touchPointID
-waarde toe aan het gebeurtenisobject voor een aanraakgebeurtenis. Met deze waarde kunt u reageren op een specifiek aanraakpunt wanneer de omgeving ondersteuning biedt voor meerdere gelijktijdige aanraakpunten (ook in het geval dat bewegingen niet worden afgehandeld). Voor meer informatie over de eigenschap
touchPointID
gaat u naar
Aanraakpunt-id
.
De volgende code bevat een eenvoudige start-sleep-gebeurtenishandler en een stop-sleepgebeurtenishandler voor een aanraakgebeurtenis. De variabele
bg
is een weergaveobject dat
mySprite
bevat:
mySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
mySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin(e:TouchEvent) {
e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this));
trace("touch begin");
}
function onTouchEnd(e:TouchEvent) {
e.target.stopTouchDrag(e.touchPointID);
trace("touch end");
}
Hier vindt u een meer geavanceerd voorbeeld waarin een sleephandeling wordt gecombineerd met aanraakgebeurtenisfasen:
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0,0,40,40);
addChild(mySprite);
mySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
mySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
mySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin(evt:TouchEvent) {
evt.target.startTouchDrag(evt.touchPointID);
evt.target.scaleX *= 1.5;
evt.target.scaleY *= 1.5;
}
function onTouchMove(evt:TouchEvent) {
evt.target.alpha = 0.5;
}
function onTouchEnd(evt:TouchEvent) {
evt.target.stopTouchDrag(evt.touchPointID);
evt.target.width = 40;
evt.target.height = 40;
evt.target.alpha = 1;
}