13.08.2012 Views

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ACTIONSCRIPT</strong> 3.0 DEVELOPER’S GUIDE<br />

Touch, multitouch and gesture input<br />

}<br />

function onTouchMove(ev<strong>en</strong>t:TouchEv<strong>en</strong>t) {<br />

if(ev<strong>en</strong>t.touchPointID != touchMoveID) {<br />

myTextField.text = "ignoring unrelated touch";<br />

return;<br />

}<br />

mySprite.x = ev<strong>en</strong>t.stageX;<br />

mySprite.y = ev<strong>en</strong>t.stageY;<br />

myTextField.text = "touch move" + ev<strong>en</strong>t.touchPointID;<br />

}<br />

function onTouchEnd(ev<strong>en</strong>t:TouchEv<strong>en</strong>t) {<br />

if(ev<strong>en</strong>t.touchPointID != touchMoveID) {<br />

myTextField.text = "ignoring unrelated touch <strong>en</strong>d";<br />

return;<br />

}<br />

touchMoveID = 0;<br />

stage.removeEv<strong>en</strong>tList<strong>en</strong>er(TouchEv<strong>en</strong>t.TOUCH_MOVE, onTouchMove);<br />

stage.removeEv<strong>en</strong>tList<strong>en</strong>er(TouchEv<strong>en</strong>t.TOUCH_END, onTouchEnd);<br />

myTextField.text = "touch <strong>en</strong>d" + ev<strong>en</strong>t.touchPointID;<br />

}<br />

Touch and drag<br />

Flash Player 10.1 and later, Adobe AIR 2 and later<br />

Two methods were added to the Sprite class to provide additional support for touch-<strong>en</strong>abled applications supporting<br />

touch-point input: Sprite.startTouchDrag() and Sprite.stopTouchDrag(). These methods behave the same as<br />

Sprite.startDrag() and Sprite.stopDrag() do for mouse ev<strong>en</strong>ts. However, notice the<br />

Sprite.startTouchDrag() and Sprite.stopTouchDrag() methods both take touchPointID values as<br />

parameters.<br />

The runtime assigns the touchPointID value to the ev<strong>en</strong>t object for a touch ev<strong>en</strong>t. Use this value to respond to a<br />

specific touch point in the case the <strong>en</strong>vironm<strong>en</strong>t supports multiple, simultaneous, touch points (ev<strong>en</strong> if it does not<br />

handle gestures). For more information about the touchPointID property, see “Touch Point ID” on page 586.<br />

The following code shows a simple start drag ev<strong>en</strong>t handler and a stop drag ev<strong>en</strong>t handler for a touch ev<strong>en</strong>t. The<br />

variable bg is a display object that contains mySprite:<br />

mySprite.addEv<strong>en</strong>tList<strong>en</strong>er(TouchEv<strong>en</strong>t.TOUCH_BEGIN, onTouchBegin);<br />

mySprite.addEv<strong>en</strong>tList<strong>en</strong>er(TouchEv<strong>en</strong>t.TOUCH_END, onTouchEnd);<br />

function onTouchBegin(e:TouchEv<strong>en</strong>t) {<br />

e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this));<br />

trace("touch begin");<br />

}<br />

function onTouchEnd(e:TouchEv<strong>en</strong>t) {<br />

e.target.stopTouchDrag(e.touchPointID);<br />

trace("touch <strong>en</strong>d");<br />

}<br />

And the following shows a more advanced example combining dragging with touch ev<strong>en</strong>t phases:<br />

Last updated 6/6/2012<br />

587

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!