In this series on the new multi-touch capabilities in the new flash player 10.1, I’m going to take a closer look at the new events that are fired off by the flash player when dealing with multiple touch inputs.
The two new events that I’m particularly interested in are: flash.events.TouchEvent and flash.events.TransformGestureEvent.
The new TouchEvent class is fired off by the flash player when the player detects a single touch. This class should look very familiar to those who are comfortable with the MouseEvent. It’s my current understanding that this event can only be fired on touch enabled Windows 7 machines. I have no doubt that this will change in the near future but as of this writing (November 09) Linux and OSX don’t have a clear way to dispatch the TouchEvent class.
The new TransformGestureEvent class is fired off by the flash player when the player detects a gesture from the operating system. OSX users will be familiar with the ‘Pinch’, ‘Zoom’ and ‘Pan’ feature that is commonly used via the newer trackpads on most Macintosh laptops. It’s important to note that OS 10.6 (Snow Leopard) is required for the flash player to consume these events from the trackpad correctly. The flash player makes use of these gestures and dispatches the appropriate type of TransformGestureEvent. Windows 7 can also dispatch these same gesture event types.
A sample event might look like this:
[TransformGestureEvent type="gestureRotate" bubbles=true, cancelable=false phase=null localX=20 localY=20 stageX=20 stageY=20 scaleX=1 scaleY=1 rotation=0 offsetX=0 offsetY=0 ctrlKey=false altkey=false shiftKey=false commandKey=false controlKey=false]
Just like a mouse event the developer can handle that rotation event however they wanted. Most likely a developer might want to rotate the currentTarget of the TransformGestureEvent.
One requirement that might be overlooked is that you have to specify the type of events that your applications will be consuming.
This code is required:
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT
Multitouch.inputMode = MultitouchInputMode.GESTURE;
Your flash 10.1 or Adobe Air 2 application can switch between touch input modes but it can’t consume them both at the same time.
If there is anything that Alagad can do to help you or your company get started with your multi-touch project, please don’t hesitate to contact us.
Thanks for posting comments, corrections or questions.