Aanraken en slepen

Flash Player 10.1 of hoger, Adobe AIR 2 of hoger

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