TouchPinch.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. Object.defineProperty(i, "__esModule", {value: !0}),
  5. (i.default = class {
  6. constructor() {
  7. (this.pinchFirst = null),
  8. (this.pinchSecond = null),
  9. (this.startPinchDist = 0),
  10. (this.lastPinchDist = 0),
  11. (this.pinchDist = 0),
  12. (this.pinchCenter = cc.v2());
  13. }
  14. reset() {
  15. (this.pinchFirst = null), (this.pinchSecond = null), (this.startPinchDist = 0);
  16. }
  17. onTouchStart(t) {
  18. this.pinchFirst && this.pinchFirst.id === t.id
  19. ? ((this.pinchFirst = t), (this.pinchSecond = null), (this.startPinchDist = 0))
  20. : this.pinchSecond && this.pinchSecond.id === t.id
  21. ? ((this.pinchFirst = null), (this.pinchSecond = t), (this.startPinchDist = 0))
  22. : this.pinchFirst
  23. ? this.pinchSecond || ((this.pinchSecond = t), (this.startPinchDist = 0))
  24. : ((this.pinchFirst = t), (this.startPinchDist = 0));
  25. }
  26. onTouchEnd(t) {
  27. this.pinchFirst && this.pinchFirst.id === t.id && (this.pinchFirst = null),
  28. this.pinchSecond && this.pinchSecond.id === t.id && (this.pinchSecond = null);
  29. }
  30. onPinch(t) {
  31. if (this.pinchFirst && this.pinchSecond) {
  32. if (this.startPinchDist)
  33. return (
  34. (this.lastPinchDist = this.pinchDist),
  35. (this.pinchCenter.x = (this.pinchFirst.screenPos.x + this.pinchSecond.screenPos.x) / 2),
  36. (this.pinchCenter.y = (this.pinchFirst.screenPos.y + this.pinchSecond.screenPos.y) / 2),
  37. (this.pinchDist = cc.Vec2.distance(this.pinchFirst.screenPos, this.pinchSecond.screenPos)),
  38. t && t(this.pinchCenter, this.lastPinchDist, this.pinchDist),
  39. !0
  40. );
  41. (this.startPinchDist = cc.Vec2.distance(
  42. this.pinchFirst.startScreenPos,
  43. this.pinchSecond.startScreenPos
  44. )),
  45. (this.pinchDist = this.startPinchDist);
  46. }
  47. return !1;
  48. }
  49. });