Advertisement
Guest User

TuioConnector.as

a guest
Feb 17th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package utils {
  2. import component.TouchDisplay;
  3.  
  4. import flash.net.LocalConnection;
  5. import flash.display.Stage;
  6. import org.gestouch.core.Gestouch;
  7. import org.gestouch.extensions.starling.StarlingDisplayListAdapter;
  8. import org.gestouch.extensions.starling.StarlingTouchHitTester;
  9. import org.gestouch.input.NativeInputAdapter;
  10.  
  11. import org.tuio.ITuioListener;
  12. import org.tuio.TuioBlob;
  13. import org.tuio.TuioClient;
  14. import org.tuio.TuioCursor;
  15. import org.tuio.TuioEvent;
  16. import org.tuio.TuioObject;
  17. import org.tuio.TuioTouchEvent;
  18. import org.tuio.connectors.LCConnector;
  19. import org.tuio.connectors.TCPConnector;
  20. import org.tuio.connectors.UDPConnector;
  21. import org.tuio.debug.TuioDebug;
  22.  
  23. import starling.core.Starling;
  24. import starling.display.DisplayObject;
  25. import starling.events.TouchPhase;
  26. import starling.events.TouchProcessor;
  27.  
  28. import org.gestouch.core.IInputAdapter;
  29. import org.gestouch.core.TouchesManager;
  30. import org.gestouch.core.gestouch_internal;
  31.  
  32. public class TuioConnector implements ITuioListener, IInputAdapter {
  33.     private var _localConnection:LocalConnection;
  34.     private var _lcConnector:LCConnector;
  35.     private var _udpConnector:UDPConnector;
  36.     private var _tcpConnect:TCPConnector;
  37.     private var tuioClient:TuioClient;
  38.     private var tuioDebug:TuioDebug;
  39.  
  40.     protected var _stage:Stage;
  41.     protected var _touchesManager:TouchesManager;
  42.  
  43.     use namespace gestouch_internal;
  44.  
  45.  
  46.     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="") {
  47.         _stage = stage;
  48.  
  49.         this.touchesManager = Gestouch.touchesManager;
  50.         Gestouch.addDisplayListAdapter(starling.display.DisplayObject, new StarlingDisplayListAdapter());
  51.         Gestouch.addTouchHitTester(new StarlingTouchHitTester(Config.starling), -1);
  52.  
  53.         if (isTCP == true) {
  54.             _tcpConnect = new TCPConnector(address, port);
  55.             tuioClient = new TuioClient(_tcpConnect);
  56.             tuioClient.addListener(this);
  57.         } else if (isUDP == true) {
  58.             _udpConnector = new UDPConnector(address, port, Config.bind, Config.autodetectBindAddress, macAddress);
  59.             tuioClient = new TuioClient(_udpConnector);
  60.             tuioClient.addListener(this);
  61.  
  62.  
  63.         } else if (isLocalConnection == true) {
  64.             _localConnection = new LocalConnection();
  65.             _localConnection.connect("_MyConnection");
  66.             _localConnection.allowDomain('*');
  67.             _localConnection.client = this;
  68.             _lcConnector = new LCConnector();
  69.             tuioClient = new TuioClient(_lcConnector);
  70.             tuioClient.addListener(this);
  71.         } else {
  72.             Gestouch.inputAdapter = new NativeInputAdapter(Config.myStage);
  73.             Gestouch.addDisplayListAdapter(starling.display.DisplayObject, new StarlingDisplayListAdapter());
  74.             Gestouch.addTouchHitTester(new StarlingTouchHitTester(Config.starling), -1);
  75.             return;
  76.         }
  77.  
  78.         if(Config.tuio_debug==true && tuioClient) {
  79.             tuioDebug = TuioDebug.init(stage);
  80.             tuioClient.addListener(tuioDebug);
  81.         }
  82.  
  83.         init();
  84.     }
  85.  
  86.     public function init():void {
  87.         Starling.current.nativeStage.addEventListener(TuioTouchEvent.TOUCH_DOWN, addTuioCursor);
  88.         Starling.current.nativeStage.addEventListener(TuioTouchEvent.TOUCH_UP, removeTuioCursor);
  89.         Starling.current.nativeStage.addEventListener(TuioTouchEvent.TAP, addTuioCursor);
  90.         Starling.current.nativeStage.addEventListener(TuioTouchEvent.TOUCH_MOVE, updateTuioCursor);
  91.     }
  92.  
  93.     private function addTuioCursor2(event:TuioEvent):void
  94.     {
  95.         if(event.bubbles==false) return;
  96.  
  97.         var stgX:int = event.tuioContainer.x + event.tuioContainer.x;
  98.         var stgY:int = -Config.viewportRect.y + event.tuioContainer.y;
  99.  
  100.         if(_touchesManager) _touchesManager.onTouchBegin(event.tuioContainer.sessionID, stgX, stgY);
  101.         touchProcessor.enqueue(event.tuioContainer.sessionID, TouchPhase.BEGAN, stgX, stgY);
  102.     }
  103.  
  104.     private function updateTuioCursor2(event:TuioEvent):void
  105.     {
  106.         if(event.bubbles==false) return;
  107.  
  108.         var stgX:int = event.tuioContainer.x + event.tuioContainer.x;
  109.         var stgY:int = -Config.viewportRect.y + event.tuioContainer.y;
  110.  
  111.         if(_touchesManager) _touchesManager.onTouchMove(event.tuioContainer.sessionID, stgX, stgY);
  112.         touchProcessor.enqueue(event.tuioContainer.sessionID, TouchPhase.MOVED, stgX, stgY);
  113.     }
  114.  
  115.  
  116.     public function removeTuioCursor2(event:TuioEvent):void {
  117.         if(event.bubbles==false) return;
  118.  
  119.         var stgX:int = event.tuioContainer.x + event.tuioContainer.x;
  120.         var stgY:int = -Config.viewportRect.y + event.tuioContainer.y;
  121.  
  122.         if(_touchesManager) _touchesManager.onTouchEnd(event.tuioContainer.sessionID, stgX, stgY);
  123.         touchProcessor.enqueue(event.tuioContainer.sessionID, TouchPhase.ENDED, stgX, stgY);
  124.     }
  125.  
  126.     public function set touchesManager(value:TouchesManager):void {
  127.         _touchesManager = value;
  128.     }
  129.  
  130.     public function onDispose():void {
  131.         _touchesManager = null;
  132.     }
  133.  
  134.  
  135.  
  136.  
  137.     public function addTuioCursor(tuioCursor:TuioCursor):void {
  138.         var stgX:Number = -Config.viewportRect.x + (tuioCursor.x * stgW);
  139.         var stgY:Number = -Config.viewportRect.y + (tuioCursor.y * stgH);
  140.  
  141.         if(_touchesManager) _touchesManager.onTouchBegin(tuioCursor.sessionID, stgX, stgY);
  142.         touchProcessor.enqueue(tuioCursor.sessionID, TouchPhase.BEGAN, stgX, stgY);
  143.     }
  144.  
  145.     public function updateTuioCursor(tuioCursor:TuioCursor):void {
  146.         var stgX:Number = -Config.viewportRect.x + (tuioCursor.x * stgW);
  147.         var stgY:Number = -Config.viewportRect.y + (tuioCursor.y * stgH);
  148.  
  149.         if (_touchesManager) _touchesManager.onTouchMove(tuioCursor.sessionID,stgX, stgY);
  150.         touchProcessor.enqueue(tuioCursor.sessionID, TouchPhase.MOVED, stgX, stgY);
  151.     }
  152.  
  153.     public function removeTuioCursor(tuioCursor:TuioCursor):void {
  154.         //var stgX:Number = -Config.viewportRect.x + Math.round(tuioCursor.x * stgW);
  155.         //var stgY:Number = -Config.viewportRect.y + Math.round(tuioCursor.y * stgH);
  156.  
  157.         var stgX:Number = -Config.viewportRect.x + (tuioCursor.x * stgW);
  158.         var stgY:Number = -Config.viewportRect.y + (tuioCursor.y * stgH);
  159.  
  160.         if (_touchesManager)_touchesManager.onTouchEnd(tuioCursor.sessionID, stgX, stgY);
  161.         touchProcessor.enqueue(tuioCursor.sessionID, TouchPhase.ENDED, stgX, stgY);
  162.     }
  163.  
  164.     public function addTuioBlob(tuioBlob:TuioBlob):void {
  165.  
  166.     }
  167.  
  168.     public function updateTuioBlob(tuioBlob:TuioBlob):void {
  169.  
  170.     }
  171.  
  172.     public function removeTuioBlob(tuioBlob:TuioBlob):void {
  173.  
  174.     }
  175.  
  176.     public function addTuioObject(tuioObject:TuioObject):void {
  177.  
  178.     }
  179.  
  180.     public function updateTuioObject(tuioObject:TuioObject):void {
  181.  
  182.     }
  183.  
  184.     public function removeTuioObject(tuioObject:TuioObject):void {
  185.  
  186.     }
  187.  
  188.     public function newFrame(id:uint):void {
  189.  
  190.     }
  191.  
  192.     private function get touchProcessor():TouchProcessor {
  193.         return Starling.current.touchProcessor;
  194.     }
  195.  
  196.     private function get stgW():Number {
  197.         return Starling.current.nativeStage.stageWidth;
  198.     }
  199.  
  200.     private function get stgH():Number {
  201.         return Starling.current.nativeStage.stageHeight;
  202.     }
  203.  
  204.     public function destroy():void
  205.     {
  206.         if(_udpConnector) _udpConnector.close();
  207.     }
  208. }
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement