UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

260 lines (245 loc) 9.27 kB
// Class: starling.events.Touch var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; function starling_utils_StringUtil() {return require("./../../starling/utils/StringUtil");} function openfl__$Vector_Vector_$Impl_$() {return require("./../../openfl/_Vector/Vector_Impl_");} function openfl_VectorData() {return $import(require("openfl/Vector"));} function openfl_geom_Point() {return $import(require("openfl/geom/Point"));} function starling_utils_Pool() {return require("./../../starling/utils/Pool");} // Constructor var Touch = function(id) { this.__id = id; this.__tapCount = 0; this.__phase = "hover"; this.__pressure = this.__width = this.__height = 1.0; this.__bubbleChain = (openfl__$Vector_Vector_$Impl_$().default)._new(); this.__timestamp = this.__startTimestamp = -1; } // Meta Touch.__name__ = "starling.events.Touch"; Touch.__isInterface__ = false; Touch.prototype = { getLocation: function(space,out) { Touch.sHelperPoint.setTo(this.__globalX,this.__globalY); return space.globalToLocal(Touch.sHelperPoint,out); }, getPreviousLocation: function(space,out) { Touch.sHelperPoint.setTo(this.__previousGlobalX,this.__previousGlobalY); return space.globalToLocal(Touch.sHelperPoint,out); }, getStartLocation: function(space,out) { Touch.sHelperPoint.setTo(this.__startGlobalX,this.__startGlobalY); return space.globalToLocal(Touch.sHelperPoint,out); }, getMovement: function(space,out) { return Touch.getMovementBetween(this.__previousGlobalX,this.__previousGlobalY,this.__globalX,this.__globalY,space,out); }, getMovementSinceStart: function(space,out) { return Touch.getMovementBetween(this.__startGlobalX,this.__startGlobalY,this.__globalX,this.__globalY,space,out); }, isTouching: function(target) { var this1 = this.__bubbleChain; return (Array.prototype.indexOf.call)(this1,target,0) != -1; }, toString: function() { return (starling_utils_StringUtil().default).format("[Touch {0}: globalX={1}, globalY={2}, phase={3}]",[this.__id,this.__globalX,this.__globalY,this.__phase]); }, clone: function() { var clone = new Touch(this.__id); clone.__globalX = this.__globalX; clone.__globalY = this.__globalY; clone.__previousGlobalX = this.__previousGlobalX; clone.__previousGlobalY = this.__previousGlobalY; clone.__startGlobalX = this.__startGlobalX; clone.__startGlobalY = this.__startGlobalY; clone.__startTimestamp = this.__startTimestamp; clone.__phase = this.__phase; clone.__tapCount = this.__tapCount; clone.__timestamp = this.__timestamp; clone.__pressure = this.__pressure; clone.__width = this.__width; clone.__height = this.__height; clone.__cancelled = this.__cancelled; clone.set_target(this.__target); return clone; }, updateBubbleChain: function() { if(this.__target != null) { var length = 1; var element = this.__target; this.__bubbleChain.length = 1; (openfl__$Vector_Vector_$Impl_$().default).set(this.__bubbleChain,0,element); while(true) { element = element.get_parent(); if(!(element != null)) { break; } (openfl__$Vector_Vector_$Impl_$().default).set(this.__bubbleChain,length++,element); } } else { this.__bubbleChain.length = 0; } }, get_id: function() { return this.__id; }, get_previousGlobalX: function() { return this.__previousGlobalX; }, get_previousGlobalY: function() { return this.__previousGlobalY; }, get_startGlobalX: function() { return this.__startGlobalX; }, get_startGlobalY: function() { return this.__startGlobalY; }, get_globalX: function() { return this.__globalX; }, set_globalX: function(value) { if(this.__globalX != this.__globalX) { this.__previousGlobalX = this.__startGlobalX = value; } else { this.__previousGlobalX = this.__globalX; } return this.__globalX = value; }, get_globalY: function() { return this.__globalY; }, set_globalY: function(value) { if(this.__globalY != this.__globalY) { this.__previousGlobalY = this.__startGlobalY = value; } else { this.__previousGlobalY = this.__globalY; } return this.__globalY = value; }, get_tapCount: function() { return this.__tapCount; }, set_tapCount: function(value) { return this.__tapCount = value; }, get_phase: function() { return this.__phase; }, set_phase: function(value) { this.__phase = value; if(value == "began") { this.__startGlobalX = this.__globalX; this.__startGlobalY = this.__globalY; this.__startTimestamp = this.__timestamp; } return value; }, get_target: function() { return this.__target; }, set_target: function(value) { if(this.__target != value) { this.__target = value; this.updateBubbleChain(); } return this.__target; }, get_timestamp: function() { return this.__timestamp; }, set_timestamp: function(value) { if(this.__startTimestamp < 0) { this.__startTimestamp = value; } return this.__timestamp = value; }, get_pressure: function() { return this.__pressure; }, set_pressure: function(value) { return this.__pressure = value; }, get_width: function() { return this.__width; }, set_width: function(value) { return this.__width = value; }, get_height: function() { return this.__height; }, set_height: function(value) { return this.__height = value; }, get_cancelled: function() { return this.__cancelled; }, set_cancelled: function(value) { return this.__cancelled = value; }, get_duration: function() { if(this.__timestamp < 0 || this.__startTimestamp < 0 || this.__startTimestamp > this.__timestamp) { return -1.0; } else { return this.__timestamp - this.__startTimestamp; } }, update: function(timestamp,phase,globalX,globalY,pressure,width,height) { if(height == null) { height = 1.0; } if(width == null) { width = 1.0; } if(pressure == null) { pressure = 1.0; } this.__pressure = pressure; this.__width = width; this.__height = height; this.set_timestamp(timestamp); this.set_globalX(globalX); this.set_globalY(globalY); this.set_phase(phase); }, dispatchEvent: function(event) { if(this.__target != null) { event.dispatch(this.__bubbleChain); } }, get_bubbleChain: function() { var this1 = this.__bubbleChain; var a = null; if(a == null) { return (openfl_VectorData().default).ofArray((Array.prototype.concat.call)(this1)); } else { return (openfl_VectorData().default).ofArray((Array.prototype.concat.call)(this1,a)); } } }; Touch.prototype.__class__ = Touch.prototype.constructor = $hxClasses["starling.events.Touch"] = Touch; // Init Object.defineProperties(Touch.prototype,{ id : { get : function () { return this.get_id (); }}, previousGlobalX : { get : function () { return this.get_previousGlobalX (); }}, previousGlobalY : { get : function () { return this.get_previousGlobalY (); }}, startGlobalX : { get : function () { return this.get_startGlobalX (); }}, startGlobalY : { get : function () { return this.get_startGlobalY (); }}, globalX : { get : function () { return this.get_globalX (); }, set : function (v) { return this.set_globalX (v); }}, globalY : { get : function () { return this.get_globalY (); }, set : function (v) { return this.set_globalY (v); }}, tapCount : { get : function () { return this.get_tapCount (); }, set : function (v) { return this.set_tapCount (v); }}, phase : { get : function () { return this.get_phase (); }, set : function (v) { return this.set_phase (v); }}, target : { get : function () { return this.get_target (); }, set : function (v) { return this.set_target (v); }}, timestamp : { get : function () { return this.get_timestamp (); }, set : function (v) { return this.set_timestamp (v); }}, pressure : { get : function () { return this.get_pressure (); }, set : function (v) { return this.set_pressure (v); }}, width : { get : function () { return this.get_width (); }, set : function (v) { return this.set_width (v); }}, height : { get : function () { return this.get_height (); }, set : function (v) { return this.set_height (v); }}, cancelled : { get : function () { return this.get_cancelled (); }, set : function (v) { return this.set_cancelled (v); }}, duration : { get : function () { return this.get_duration (); }}, bubbleChain : { get : function () { return this.get_bubbleChain (); }}}); // Statics Touch.getMovementBetween = function(startX,startY,endX,endY,space,out) { if(out == null) { out = new (openfl_geom_Point().default)(); } var startPos = (starling_utils_Pool().default).getPoint(startX,startY); var endPos = (starling_utils_Pool().default).getPoint(endX,endY); space.globalToLocal(startPos,startPos); space.globalToLocal(endPos,endPos); out.setTo(endPos.x - startPos.x,endPos.y - startPos.y); (starling_utils_Pool().default).putPoint(startPos); (starling_utils_Pool().default).putPoint(endPos); return out; } Touch.sHelperPoint = new (openfl_geom_Point().default)() // Export exports.default = Touch;