Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package utils {
- import component.TouchDisplay;
- import flash.net.LocalConnection;
- import flash.display.Stage;
- import org.gestouch.core.Gestouch;
- import org.gestouch.extensions.starling.StarlingDisplayListAdapter;
- import org.gestouch.extensions.starling.StarlingTouchHitTester;
- import org.gestouch.input.NativeInputAdapter;
- import org.tuio.ITuioListener;
- import org.tuio.TuioBlob;
- import org.tuio.TuioClient;
- import org.tuio.TuioCursor;
- import org.tuio.TuioEvent;
- import org.tuio.TuioObject;
- import org.tuio.TuioTouchEvent;
- import org.tuio.connectors.LCConnector;
- import org.tuio.connectors.TCPConnector;
- import org.tuio.connectors.UDPConnector;
- import org.tuio.debug.TuioDebug;
- import starling.core.Starling;
- import starling.display.DisplayObject;
- import starling.events.TouchPhase;
- import starling.events.TouchProcessor;
- import org.gestouch.core.IInputAdapter;
- import org.gestouch.core.TouchesManager;
- import org.gestouch.core.gestouch_internal;
- public class TuioConnector implements ITuioListener, IInputAdapter {
- private var _localConnection:LocalConnection;
- private var _lcConnector:LCConnector;
- private var _udpConnector:UDPConnector;
- private var _tcpConnect:TCPConnector;
- private var tuioClient:TuioClient;
- private var tuioDebug:TuioDebug;
- protected var _stage:Stage;
- protected var _touchesManager:TouchesManager;
- use namespace gestouch_internal;
- public function TuioConnector(stage:Stage, address:String = "127.0.0.1", port:int = 3333, isTCP:Boolean = false, isUDP:Boolean = false, isLocalConnection:Boolean = true, macAddress:String="") {
- _stage = stage;
- this.touchesManager = Gestouch.touchesManager;
- Gestouch.addDisplayListAdapter(starling.display.DisplayObject, new StarlingDisplayListAdapter());
- Gestouch.addTouchHitTester(new StarlingTouchHitTester(Config.starling), -1);
- if (isTCP == true) {
- _tcpConnect = new TCPConnector(address, port);
- tuioClient = new TuioClient(_tcpConnect);
- tuioClient.addListener(this);
- } else if (isUDP == true) {
- _udpConnector = new UDPConnector(address, port, Config.bind, Config.autodetectBindAddress, macAddress);
- tuioClient = new TuioClient(_udpConnector);
- tuioClient.addListener(this);
- } else if (isLocalConnection == true) {
- _localConnection = new LocalConnection();
- _localConnection.connect("_MyConnection");
- _localConnection.allowDomain('*');
- _localConnection.client = this;
- _lcConnector = new LCConnector();
- tuioClient = new TuioClient(_lcConnector);
- tuioClient.addListener(this);
- } else {
- Gestouch.inputAdapter = new NativeInputAdapter(Config.myStage);
- Gestouch.addDisplayListAdapter(starling.display.DisplayObject, new StarlingDisplayListAdapter());
- Gestouch.addTouchHitTester(new StarlingTouchHitTester(Config.starling), -1);
- return;
- }
- if(Config.tuio_debug==true && tuioClient) {
- tuioDebug = TuioDebug.init(stage);
- tuioClient.addListener(tuioDebug);
- }
- init();
- }
- public function init():void {
- Starling.current.nativeStage.addEventListener(TuioTouchEvent.TOUCH_DOWN, addTuioCursor);
- Starling.current.nativeStage.addEventListener(TuioTouchEvent.TOUCH_UP, removeTuioCursor);
- Starling.current.nativeStage.addEventListener(TuioTouchEvent.TAP, addTuioCursor);
- Starling.current.nativeStage.addEventListener(TuioTouchEvent.TOUCH_MOVE, updateTuioCursor);
- }
- private function addTuioCursor2(event:TuioEvent):void
- {
- if(event.bubbles==false) return;
- var stgX:int = event.tuioContainer.x + event.tuioContainer.x;
- var stgY:int = -Config.viewportRect.y + event.tuioContainer.y;
- if(_touchesManager) _touchesManager.onTouchBegin(event.tuioContainer.sessionID, stgX, stgY);
- touchProcessor.enqueue(event.tuioContainer.sessionID, TouchPhase.BEGAN, stgX, stgY);
- }
- private function updateTuioCursor2(event:TuioEvent):void
- {
- if(event.bubbles==false) return;
- var stgX:int = event.tuioContainer.x + event.tuioContainer.x;
- var stgY:int = -Config.viewportRect.y + event.tuioContainer.y;
- if(_touchesManager) _touchesManager.onTouchMove(event.tuioContainer.sessionID, stgX, stgY);
- touchProcessor.enqueue(event.tuioContainer.sessionID, TouchPhase.MOVED, stgX, stgY);
- }
- public function removeTuioCursor2(event:TuioEvent):void {
- if(event.bubbles==false) return;
- var stgX:int = event.tuioContainer.x + event.tuioContainer.x;
- var stgY:int = -Config.viewportRect.y + event.tuioContainer.y;
- if(_touchesManager) _touchesManager.onTouchEnd(event.tuioContainer.sessionID, stgX, stgY);
- touchProcessor.enqueue(event.tuioContainer.sessionID, TouchPhase.ENDED, stgX, stgY);
- }
- public function set touchesManager(value:TouchesManager):void {
- _touchesManager = value;
- }
- public function onDispose():void {
- _touchesManager = null;
- }
- public function addTuioCursor(tuioCursor:TuioCursor):void {
- var stgX:Number = -Config.viewportRect.x + (tuioCursor.x * stgW);
- var stgY:Number = -Config.viewportRect.y + (tuioCursor.y * stgH);
- if(_touchesManager) _touchesManager.onTouchBegin(tuioCursor.sessionID, stgX, stgY);
- touchProcessor.enqueue(tuioCursor.sessionID, TouchPhase.BEGAN, stgX, stgY);
- }
- public function updateTuioCursor(tuioCursor:TuioCursor):void {
- var stgX:Number = -Config.viewportRect.x + (tuioCursor.x * stgW);
- var stgY:Number = -Config.viewportRect.y + (tuioCursor.y * stgH);
- if (_touchesManager) _touchesManager.onTouchMove(tuioCursor.sessionID,stgX, stgY);
- touchProcessor.enqueue(tuioCursor.sessionID, TouchPhase.MOVED, stgX, stgY);
- }
- public function removeTuioCursor(tuioCursor:TuioCursor):void {
- //var stgX:Number = -Config.viewportRect.x + Math.round(tuioCursor.x * stgW);
- //var stgY:Number = -Config.viewportRect.y + Math.round(tuioCursor.y * stgH);
- var stgX:Number = -Config.viewportRect.x + (tuioCursor.x * stgW);
- var stgY:Number = -Config.viewportRect.y + (tuioCursor.y * stgH);
- if (_touchesManager)_touchesManager.onTouchEnd(tuioCursor.sessionID, stgX, stgY);
- touchProcessor.enqueue(tuioCursor.sessionID, TouchPhase.ENDED, stgX, stgY);
- }
- public function addTuioBlob(tuioBlob:TuioBlob):void {
- }
- public function updateTuioBlob(tuioBlob:TuioBlob):void {
- }
- public function removeTuioBlob(tuioBlob:TuioBlob):void {
- }
- public function addTuioObject(tuioObject:TuioObject):void {
- }
- public function updateTuioObject(tuioObject:TuioObject):void {
- }
- public function removeTuioObject(tuioObject:TuioObject):void {
- }
- public function newFrame(id:uint):void {
- }
- private function get touchProcessor():TouchProcessor {
- return Starling.current.touchProcessor;
- }
- private function get stgW():Number {
- return Starling.current.nativeStage.stageWidth;
- }
- private function get stgH():Number {
- return Starling.current.nativeStage.stageHeight;
- }
- public function destroy():void
- {
- if(_udpConnector) _udpConnector.close();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement