<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="windowedapplication1_applicationCompleteHandler(event)" frameRate="60" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import flash.events.GestureEvent; import flash.events.TransformGestureEvent; import mx.events.FlexEvent; protected function windowedapplication1_applicationCompleteHandler(event:FlexEvent):void { stage.nativeWindow.maximize(); addEventListener( GestureEvent.GESTURE_TWO_FINGER_TAP, onMultitouchEvent ); addEventListener( TransformGestureEvent.GESTURE_PAN, onMultitouchEvent ); addEventListener( TransformGestureEvent.GESTURE_PRESS_AND_TAP, onMultitouchEvent ); addEventListener( TransformGestureEvent.GESTURE_ROTATE, onMultitouchEvent ); addEventListener( TransformGestureEvent.GESTURE_ZOOM, onMultitouchEvent ); } protected function onMultitouchEvent( event : Event ) : void { if ( event is TransformGestureEvent ) { var tge : TransformGestureEvent = event as TransformGestureEvent; output( tge.type, "r:" + tge.rotation, "sx:" + tge.scaleX, "sy:" + tge.scaleY, "ox:" + tge.offsetX, "oy:" + tge.offsetY); } else if ( event is GestureEvent ) { var ge : GestureEvent = event as GestureEvent; output( ge.type, ge.localX, ge.localY ); } else { output( event.target ); } } protected function output( ... args ) : void { var value : String = ""; for each ( var o : Object in args ) { value += o.toString() + " "; } outputTA.text += (( outputTA.text.length > 0 ) ? "\n" : "" ) + value; outputTA.verticalScrollPosition = outputTA.maxVerticalScrollPosition+1; } ]]> </mx:Script> <mx:TextArea id="outputTA" editable="false" width="100%" height="100%" selectable="false" fontSize="30" wordWrap="false"/> <mx:Button label="Clear" click="outputTA.text = ''" /> </mx:WindowedApplication>