Gestures Events for tablet and mobile devices in AS 3

Augmented Reality Applications, Games and more for Android

Gestures Events for tablet and mobile devices in AS 3

Postby Ashish on Tue Nov 22, 2011 12:43 pm

Mouse Gestures in Flash Action Script 3.0 Mouse Gesture

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

Bookmark and Share
Ashish
 
Posts: 153
Joined: Tue Oct 14, 2008 1:49 pm

Return to Android App Development using Flash

Who is online

Users browsing this forum: No registered users and 1 guest