flash on 2011-9-19
♥0 |
Line 67 |
Modified 2011-09-20 12:52:10 |
MIT License
archived:2017-03-30 03:02:37
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;
}
}
}