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 />

Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT;<br />

var mySprite:Sprite = new Sprite();<br />

var myTextField:TextField = new TextField();<br />

mySprite.graphics.beginFill(0x336699);<br />

mySprite.graphics.drawRect(0,0,40,40);<br />

addChild(mySprite);<br />

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

function taphandler(evt:TouchEv<strong>en</strong>t): void {<br />

myTextField.text = evt.stageX.toString;<br />

myTextField.y = 50;<br />

addChild(myTextField);<br />

}<br />

See the TouchEv<strong>en</strong>t class for the properties available through the ev<strong>en</strong>t object.<br />

Note: Not all TouchEv<strong>en</strong>t properties are supported in all runtime <strong>en</strong>vironm<strong>en</strong>ts. For example, not all touch-<strong>en</strong>abled<br />

devices are capable or detecting the amount of pressure the user is applying to the touch scre<strong>en</strong>. So, the<br />

TouchEv<strong>en</strong>t.pressure property is not supported on those devices. Try testing for specific property support to <strong>en</strong>sure<br />

your application works, and see “Troubleshooting” on page 592 for more information.<br />

Touch ev<strong>en</strong>t phases<br />

Track touch ev<strong>en</strong>ts through various stages over and outside an InteractiveObject just as you do for mouse ev<strong>en</strong>ts. And,<br />

track touch ev<strong>en</strong>ts through the beginning, middle, and <strong>en</strong>d of a touch interaction. The TouchEv<strong>en</strong>t class provides<br />

values for handling touchBegin, touchMove, and touchEnd ev<strong>en</strong>ts.<br />

For example, you could use touchBegin, touchMove, and touchEnd ev<strong>en</strong>ts to give the user visual feedback as they<br />

touch and move a display object:<br />

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;<br />

var mySprite:Sprite = new Sprite();<br />

mySprite.graphics.beginFill(0x336699);<br />

mySprite.graphics.drawRect(0,0,40,40);<br />

addChild(mySprite);<br />

var myTextField:TextField = new TextField();<br />

myTextField.width = 200;<br />

myTextField.height = 20;<br />

addChild(myTextField);<br />

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

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

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

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

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

}<br />

function onTouchMove(ev<strong>en</strong>t:TouchEv<strong>en</strong>t) {<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 />

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

}<br />

Last updated 6/6/2012<br />

585

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

Saved successfully!

Ooh no, something went wrong!