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