flash on 2011-9-19

by tepe
♥0 | Line 67 | Modified 2011-09-20 12:52:10 | MIT License
play

ActionScript3 source code

/**
 * Copyright tepe ( http://wonderfl.net/user/tepe )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/vnDK
 */

package {
    import flash.display.Sprite;
    import flash.text.*;
    import flash.events.*;
    import flash.ui.*;
    import flash.geom.*;
    
    public class FlashTest extends Sprite {
        private var mySprite:Sprite = new Sprite();
        private var myTextField:TextField = new TextField();
        private var touchMoveID:int = 0;
        private var ID:int = 0;
        private var pos:Point = new Point();
        private var pos2:Point = new Point();
        
        public function FlashTest() {
            var touchSupport:Boolean = Multitouch.supportsTouchEvents;
            if(touchSupport == false)myTextField.text = "no support";
            Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 
 
            mySprite.graphics.beginFill(0x336699); 
            mySprite.graphics.drawCircle(0,0,20); 
            addChild(mySprite); 
 
            addChild(myTextField); 
            myTextField.width = 200; 
            myTextField.height = 20; 

 
            stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); 
            
        }
        
        private function onTouchBegin(event:TouchEvent):void { 
            pos.x = pos2.x = mySprite.x = event.stageX;
            pos.y = pos2.y = mySprite.y = event.stageY;
            
            if(touchMoveID != 0) { 
                ID = event.touchPointID;
                myTextField.text = "already moving. ignoring new touch";     
                return; 
            } 
            touchMoveID = event.touchPointID;
           
 
            myTextField.text = "touch begin" + event.touchPointID; 
            stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); 
            stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); 
            stage.addEventListener(Event.ENTER_FRAME,onEnter);
        } 
        private function onEnter(e:Event):void{
            pos.x += (pos2.x - mySprite.x)/2;
            pos.y += (pos2.y - mySprite.y)/2;
            
            mySprite.x = pos.x;
            mySprite.y = pos.y;
        }
        
        private function onTouchMove(event:TouchEvent):void { 
            if(event.touchPointID != touchMoveID) { 
                myTextField.text = "ignoring unrelated touch"; 
                return; 
            } 
            pos2.x = event.stageX;
            pos2.y = event.stageY;
            
            //mySprite.x = event.stageX; 
            //mySprite.y = event.stageY; 
            myTextField.text = "touch move" + event.touchPointID + "\n"+ ID.toString(); 
        } 

        private function onTouchEnd(event:TouchEvent):void { 
            if(event.touchPointID != touchMoveID) { 
                myTextField.text = "ignoring unrelated touch end"; 
                return; 
            } 
            touchMoveID = 0; 
            stage.removeEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); 
            stage.removeEventListener(TouchEvent.TOUCH_END, onTouchEnd); 
            stage.removeEventListener(Event.ENTER_FRAME,onEnter);
            myTextField.text = "touch end" + event.touchPointID; 
        }

    }
}