Minggu, 16 Juni 2013

Make Gesture Effect with Touch Point



In this case I will show you how to create swipe gesture effect using Touch Point input mode. This method will be very useful when the input mode for gesture and touch point can’t be run together. To build the appilacation make the movieclip as container first and named “bilangan_items”. The design of the container look like this:


 The second step is write the code. The code is written below:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

var currentGalleryItem:Number = 1;
var totalGalleryItems:Number = 5;

var n_sentuhStart:Number=new Number();

// Get x value from stage when touch is begin
function sentuh_mulai(event:TouchEvent):void
{
     n_sentuhStart = event.stageX;
     trace(n_sentuhStart);
}

//get x value when touch is end
var n_sentuhEnd:Number=new Number();
function sentuh_selesai(event:TouchEvent):void
{
     n_sentuhEnd = event.stageX;
     trace(n_sentuhEnd);
}
stage.addEventListener(TouchEvent.TOUCH_BEGIN,sentuh_mulai);
stage.addEventListener(TouchEvent.TOUCH_END,sentuh_selesai);

// determine the offset value based on x value and then animate the
//movieclip
function geser(event:TouchEvent):void
{
     var jarak:Number=new Number();
     jarak=Math.sqrt((n_sentuhStart-n_sentuhEnd)*(n_sentuhStart-n_sentuhEnd));
     var ofsetX:Number=new Number();
     if (((n_sentuhEnd-n_sentuhStart)>0)&&jarak>=30)
     {
           ofsetX = -1;
     }
     else if (((n_sentuhEnd-n_sentuhStart)<0)&&jarak>=30)
     {
           ofsetX = 1;
     }
     trace(ofsetX);
     trace(jarak);
     // oke, geser lagi...
     if (ofsetX==-1)
     {
           if (currentGalleryItem > 1)
           {
                currentGalleryItem--;
                slideRight();
           }
           bg_color.gotoAndPlay((currentGalleryItem*10)+1);
     }
     if (ofsetX==1)
     {
           if (currentGalleryItem < totalGalleryItems)
           {
                currentGalleryItem++;
                slideLeft();
           }
           bg_color.gotoAndPlay((currentGalleryItem*10)+1);
     }
}
stage.addEventListener(TouchEvent.TOUCH_END,geser);


var slideCounter:Number = 0;
function slideLeft()
{
     bilangan_items.addEventListener("enterFrame", moveGalleryLeft);
}
function slideRight()
{
     bilangan_items.addEventListener("enterFrame", moveGalleryRight);
}

function moveGalleryLeft(evt:Event)
{
     bilangan_items.x -=  40;
     slideCounter++;
     if (slideCounter == 20)
     {
           bilangan_items.removeEventListener("enterFrame", moveGalleryLeft);
           slideCounter = 0;
     }
}
function moveGalleryRight(evt:Event)
{
     bilangan_items.x +=  40;
     slideCounter++;
     if (slideCounter == 20)
     {
           bilangan_items.removeEventListener("enterFrame", moveGalleryRight);
           slideCounter = 0;
     }

}

Try to test your movie! May be useful..

Tidak ada komentar:

Posting Komentar