http://www.bytearray.org/?p=91
- Code: Select all
gesture=new MouseGesture(stage);
gesture.addGesture("B","260123401234");
gesture.addEventListener(GestureEvent.MATCH,matchHandler);
function matchHandler(e:GestureEvent):void{
trace (e.datas+" matched !")
}
Download source code : http://www.didierbrun.com/foxaweb/demos ... e_v1_0.zip
Press and Tap Gesture Event
- Code: Select all
Multitouch.inputMode = MultitouchInputMode.GESTURE;
var mySprite = new Sprite();
mySprite.addEventListener(PressAndTapGestureEvent.GESTURE_PRESS_AND_TAP , onPressAndTap );
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0, 0, 100, 80);
var myTextField = new TextField();
myTextField.y = 200;
addChild(mySprite);
addChild(myTextField);
function onPressAndTap(evt:PressAndTapGestureEvent):void {
evt.target.rotation -= 45;
if (evt.phase==GesturePhase.BEGIN) {
myTextField.text = "Begin";
}
if (evt.phase==GesturePhase.UPDATE) {
myTextField.text = "Update";
}
if (evt.phase==GesturePhase.END) {
myTextField.text = "End";
}
}
Swipe Gesture
- Code: Select all
Multitouch.inputMode = MultitouchInputMode.GESTURE;
var mySprite = new Sprite();
mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe);
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0, 0, 100, 80);
var myTextField = new TextField();
myTextField.y = 200;
addChild(mySprite);
addChild(myTextField);
function onSwipe(evt:TransformGestureEvent):void {
if (evt.offsetX == 1 ) {
myTextField.text = "right";
}
if (evt.offsetY == -1) {
myTextField.text = "up";
}
myTextField.text = evt.phase;
}
Pan Gesture
- Code: Select all
Multitouch.inputMode = MultitouchInputMode.GESTURE;
var mySprite = new Sprite();
mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN , onPan);
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0, 0, 100, 80);
var myTextField = new TextField();
myTextField.y = 200;
addChild(mySprite);
addChild(myTextField);
function onPan(evt:TransformGestureEvent):void {
evt.target.localX++;
if (evt.phase==GesturePhase.BEGIN) {
myTextField.text = "Begin";
}
if (evt.phase==GesturePhase.UPDATE) {
myTextField.text = "Update";
}
if (evt.phase==GesturePhase.END) {
myTextField.text = "End";
}
}
===================================================================================================================
GESTURE_PRESS_AND_TAP Gesture
- Code: Select all
Multitouch.inputMode = MultitouchInputMode.GESTURE;
var mySprite = new Sprite();
mySprite.addEventListener(PressAndTapGestureEvent.GESTURE_PRESS_AND_TAP , onPressAndTap );
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0, 0, 100, 80);
var myTextField = new TextField();
myTextField.y = 200;
addChild(mySprite);
addChild(myTextField);
function onPressAndTap(evt:PressAndTapGestureEvent):void {
evt.target.rotation -= 45;
if (evt.phase==GesturePhase.BEGIN) {
myTextField.text = "Begin";
}
if (evt.phase==GesturePhase.UPDATE) {
myTextField.text = "Update";
}
if (evt.phase==GesturePhase.END) {
myTextField.text = "End";
}
}
In the following example, the application moves a Sprite based on accelerometer update events. The accelerometer update events indicate movement of the device.
Sample 1
- Code: Select all
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.AccelerometerEvent;
import flash.sensors.Accelerometer;
public class AccelerometerTest extends Sprite
{
private var ball:Sprite;
private var accelerometer:Accelerometer;
private var xSpeed:Number = 0;
private var ySpeed:Number = 0;
private const RADIUS = 20;
public final function AccelerometerTest()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
createBall();
if (Accelerometer.isSupported)
{
accelerometer = new Accelerometer();
accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
}
private final function createBall():void
{
ball = new Sprite();
ball.graphics.beginFill(0xFF0000);
ball.graphics.drawCircle(0, 0, RADIUS);
ball.cacheAsBitmap = true;
ball.x = stage.stageWidth / 2;
ball.y = stage.stageHeight / 2;
addChild(ball);
}
private final function enterFrameHandler(event:Event):void
{
event.stopPropagation();
moveBall();
}
private final function moveBall():void
{
var newX:Number = ball.x + xSpeed;
var newY:Number = ball.y + ySpeed;
if (newX < 20)
{
ball.x = RADIUS;
xSpeed = 0;
}
else if (newX > stage.stageWidth - RADIUS)
{
ball.x = stage.stageWidth - RADIUS;
xSpeed = 0;
}
else
{
ball.x += xSpeed;
}
if (newY < RADIUS)
{
ball.y = RADIUS;
ySpeed = 0;
}
else if (newY > stage.stageHeight - RADIUS)
{
ball.y = stage.stageHeight - RADIUS;
ySpeed = 0;
}
else
{
ball.y += ySpeed;
}
}
private final function accUpdateHandler(event:AccelerometerEvent):void
{
xSpeed -= event.accelerationX * 2;
ySpeed += event.accelerationY * 2;
}
}
}
Sample 2
- Code: Select all
// make a movie clip on stage and give instance name 'ball'
// create a dynamic text field give instance name 'myTextField'
import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;
var accelerometer = new Accelerometer();
var isSupported:Boolean = Accelerometer.isSupported;
accelerometer .addEventListener(AccelerometerEvent.UPDATE, onMove);
accelerometer.setRequestedUpdateInterval(400);
function onMove(event:AccelerometerEvent):void {
if( event.accelerationX<0){
myTextField.text = 'Right'
}else{
myTextField.text = 'Left'
}
ball.x += event.accelerationX *15; // positive from left to right
ball.y += (event.accelerationY *15)*-1; // positive from bottom to top
ball.scaleX = ball.scaleY = event.accelerationZ*15; // - positive if face moves closer
// event.timestamp; // time since beginning of capture
}
Know More Gestures Events Here : http://help.adobe.com/en_US/FlashPlatfo ... Event.html
Article on Gesture Events :
http://www.adobe.com/devnet/flash/artic ... tures.html
