@eva/plugin-renderer-event 2.0.2 → 2.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EVA.plugin.renderer.event.js +111 -83
- package/dist/EVA.plugin.renderer.event.min.js +1 -1
- package/dist/plugin-renderer-event.cjs.js +149 -91
- package/dist/plugin-renderer-event.cjs.prod.js +1 -1
- package/dist/plugin-renderer-event.d.ts +18 -3
- package/dist/plugin-renderer-event.esm.js +150 -92
- package/package.json +3 -3
|
@@ -4,6 +4,14 @@ globalThis.EVA.plugin = globalThis.EVA.plugin || {};
|
|
|
4
4
|
globalThis.EVA.plugin.renderer = globalThis.EVA.plugin.renderer || {};
|
|
5
5
|
var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
6
6
|
'use strict';
|
|
7
|
+
function __rest(s, e) {
|
|
8
|
+
var t = {};
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
10
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
11
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
}
|
|
7
15
|
function __decorate(decorators, target, key, desc) {
|
|
8
16
|
var c = arguments.length,
|
|
9
17
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -11,6 +19,9 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
11
19
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
12
20
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
21
|
}
|
|
22
|
+
function __metadata(metadataKey, metadataValue) {
|
|
23
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
24
|
+
}
|
|
14
25
|
const hitAreaFunc = {
|
|
15
26
|
Circle: pixi_js.Circle,
|
|
16
27
|
Ellipse: pixi_js.Ellipse,
|
|
@@ -28,12 +39,20 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
28
39
|
let Event$1 = class Event extends pluginRenderer.Renderer {
|
|
29
40
|
constructor() {
|
|
30
41
|
super(...arguments);
|
|
31
|
-
this.name = '
|
|
42
|
+
this.name = 'EventSystem';
|
|
32
43
|
}
|
|
33
|
-
init() {
|
|
34
|
-
|
|
44
|
+
init(params) {
|
|
45
|
+
var _a;
|
|
46
|
+
const compatibleParams = params;
|
|
47
|
+
const game = this.game || (typeof (compatibleParams === null || compatibleParams === void 0 ? void 0 : compatibleParams.getSystem) === 'function' ? compatibleParams : undefined);
|
|
48
|
+
const renderSystem = (_a = game === null || game === void 0 ? void 0 : game.getSystem) === null || _a === void 0 ? void 0 : _a.call(game, pluginRenderer.RendererSystem);
|
|
49
|
+
if (!(renderSystem === null || renderSystem === void 0 ? void 0 : renderSystem.rendererManager)) return;
|
|
50
|
+
this.renderSystem = renderSystem;
|
|
35
51
|
this.renderSystem.rendererManager.register(this);
|
|
36
52
|
}
|
|
53
|
+
update(frame) {
|
|
54
|
+
super.update(frame);
|
|
55
|
+
}
|
|
37
56
|
componentChanged(changed) {
|
|
38
57
|
switch (changed.type) {
|
|
39
58
|
case eva_js.OBSERVER_TYPE.ADD:
|
|
@@ -48,7 +67,9 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
48
67
|
}
|
|
49
68
|
}
|
|
50
69
|
add(changed) {
|
|
51
|
-
|
|
70
|
+
var _a;
|
|
71
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
72
|
+
if (!container) return;
|
|
52
73
|
container.interactive = true;
|
|
53
74
|
container.interactiveChildren = true;
|
|
54
75
|
const component = changed.component;
|
|
@@ -56,94 +77,52 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
56
77
|
this.addHitArea(changed, container, component.hitArea);
|
|
57
78
|
}
|
|
58
79
|
container.on('pointertap', e => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
pointerId: e.data.pointerId,
|
|
63
|
-
position: {
|
|
64
|
-
x: e.data.global.x,
|
|
65
|
-
y: e.data.global.y
|
|
66
|
-
},
|
|
67
|
-
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
68
|
-
},
|
|
69
|
-
gameObject: component.gameObject
|
|
70
|
-
});
|
|
80
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
81
|
+
component.emit('tap', eventParam);
|
|
82
|
+
component.emit('click', eventParam);
|
|
71
83
|
});
|
|
72
84
|
container.on('pointerdown', e => {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
pointerId: e.data.pointerId,
|
|
77
|
-
position: {
|
|
78
|
-
x: e.data.global.x,
|
|
79
|
-
y: e.data.global.y
|
|
80
|
-
},
|
|
81
|
-
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
82
|
-
},
|
|
83
|
-
gameObject: component.gameObject
|
|
84
|
-
});
|
|
85
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
86
|
+
component.emit('touchstart', eventParam);
|
|
87
|
+
component.emit('mousedown', eventParam);
|
|
85
88
|
});
|
|
86
89
|
container.on('pointermove', e => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
pointerId: e.data.pointerId,
|
|
91
|
-
position: {
|
|
92
|
-
x: e.data.global.x,
|
|
93
|
-
y: e.data.global.y
|
|
94
|
-
},
|
|
95
|
-
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
96
|
-
},
|
|
97
|
-
gameObject: component.gameObject
|
|
98
|
-
});
|
|
90
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
91
|
+
component.emit('touchmove', eventParam);
|
|
92
|
+
component.emit('mousemove', eventParam);
|
|
99
93
|
});
|
|
100
94
|
container.on('pointerup', e => {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
pointerId: e.data.pointerId,
|
|
105
|
-
position: {
|
|
106
|
-
x: e.data.global.x,
|
|
107
|
-
y: e.data.global.y
|
|
108
|
-
},
|
|
109
|
-
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
110
|
-
},
|
|
111
|
-
gameObject: component.gameObject
|
|
112
|
-
});
|
|
95
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
96
|
+
component.emit('touchend', eventParam);
|
|
97
|
+
component.emit('mouseup', eventParam);
|
|
113
98
|
});
|
|
114
99
|
container.on('pointerupoutside', e => {
|
|
115
|
-
component.emit('touchendoutside',
|
|
116
|
-
stopPropagation: () => e.stopPropagation(),
|
|
117
|
-
data: {
|
|
118
|
-
pointerId: e.data.pointerId,
|
|
119
|
-
position: {
|
|
120
|
-
x: e.data.global.x,
|
|
121
|
-
y: e.data.global.y
|
|
122
|
-
},
|
|
123
|
-
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
124
|
-
},
|
|
125
|
-
gameObject: component.gameObject
|
|
126
|
-
});
|
|
100
|
+
component.emit('touchendoutside', this.createEventParam(container, component, e));
|
|
127
101
|
});
|
|
128
102
|
container.on('pointercancel', e => {
|
|
129
|
-
component.emit('touchcancel',
|
|
130
|
-
stopPropagation: () => e.stopPropagation(),
|
|
131
|
-
data: {
|
|
132
|
-
pointerId: e.data.pointerId,
|
|
133
|
-
position: {
|
|
134
|
-
x: e.data.global.x,
|
|
135
|
-
y: e.data.global.y
|
|
136
|
-
},
|
|
137
|
-
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
138
|
-
},
|
|
139
|
-
gameObject: component.gameObject
|
|
140
|
-
});
|
|
103
|
+
component.emit('touchcancel', this.createEventParam(container, component, e));
|
|
141
104
|
});
|
|
142
105
|
}
|
|
106
|
+
createEventParam(container, component, e) {
|
|
107
|
+
return {
|
|
108
|
+
stopPropagation: () => e.stopPropagation(),
|
|
109
|
+
data: {
|
|
110
|
+
pointerId: e.data.pointerId,
|
|
111
|
+
position: {
|
|
112
|
+
x: e.data.global.x,
|
|
113
|
+
y: e.data.global.y
|
|
114
|
+
},
|
|
115
|
+
localPosition: container.worldTransform.applyInverse(e.data.global)
|
|
116
|
+
},
|
|
117
|
+
gameObject: component.gameObject
|
|
118
|
+
};
|
|
119
|
+
}
|
|
143
120
|
remove(changed) {
|
|
144
|
-
|
|
121
|
+
var _a;
|
|
122
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
123
|
+
if (!container) return;
|
|
145
124
|
container.interactive = false;
|
|
146
|
-
container.off('
|
|
125
|
+
container.off('pointertap');
|
|
147
126
|
container.off('pointerdown');
|
|
148
127
|
container.off('pointermove');
|
|
149
128
|
container.off('pointerup');
|
|
@@ -152,7 +131,9 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
152
131
|
changed.component.removeAllListeners();
|
|
153
132
|
}
|
|
154
133
|
change(changed) {
|
|
155
|
-
|
|
134
|
+
var _a;
|
|
135
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
136
|
+
if (!container) return;
|
|
156
137
|
container.interactive = true;
|
|
157
138
|
const component = changed.component;
|
|
158
139
|
if (component.hitArea) {
|
|
@@ -178,7 +159,7 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
178
159
|
container.hitArea = hitAreaShape;
|
|
179
160
|
}
|
|
180
161
|
};
|
|
181
|
-
Event$1.systemName = '
|
|
162
|
+
Event$1.systemName = 'EventSystem';
|
|
182
163
|
Event$1 = __decorate([eva_js.decorators.componentObserver({
|
|
183
164
|
Event: [{
|
|
184
165
|
prop: ['hitArea'],
|
|
@@ -194,13 +175,42 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
194
175
|
HIT_AREA_TYPE["Rect"] = "Rect";
|
|
195
176
|
HIT_AREA_TYPE["RoundedRect"] = "RoundedRect";
|
|
196
177
|
})(exports.HIT_AREA_TYPE || (exports.HIT_AREA_TYPE = {}));
|
|
178
|
+
class HitAreaStyleMetadata {}
|
|
179
|
+
__decorate([eva_js.type('number'), eva_js.step(1), __metadata("design:type", Number)], HitAreaStyleMetadata.prototype, "x", void 0);
|
|
180
|
+
__decorate([eva_js.type('number'), eva_js.step(1), __metadata("design:type", Number)], HitAreaStyleMetadata.prototype, "y", void 0);
|
|
181
|
+
__decorate([eva_js.type('number'), eva_js.step(1), __metadata("design:type", Number)], HitAreaStyleMetadata.prototype, "radius", void 0);
|
|
182
|
+
__decorate([eva_js.type('number'), eva_js.step(1), __metadata("design:type", Number)], HitAreaStyleMetadata.prototype, "width", void 0);
|
|
183
|
+
__decorate([eva_js.type('number'), eva_js.step(1), __metadata("design:type", Number)], HitAreaStyleMetadata.prototype, "height", void 0);
|
|
184
|
+
__decorate([eva_js.type('number'), __metadata("design:type", Array)], HitAreaStyleMetadata.prototype, "paths", void 0);
|
|
185
|
+
class HitAreaMetadata {}
|
|
186
|
+
__decorate([eva_js.type('string'), __metadata("design:type", String)], HitAreaMetadata.prototype, "type", void 0);
|
|
187
|
+
__decorate([eva_js.Field(() => HitAreaStyleMetadata), __metadata("design:type", Object)], HitAreaMetadata.prototype, "style", void 0);
|
|
197
188
|
class Event extends eva_js.Component {
|
|
198
|
-
constructor() {
|
|
199
|
-
super(
|
|
189
|
+
constructor(params) {
|
|
190
|
+
super(params);
|
|
200
191
|
this.hitArea = undefined;
|
|
192
|
+
this.configuredEventHandlers = [];
|
|
193
|
+
this.init(params);
|
|
201
194
|
}
|
|
202
195
|
init(params) {
|
|
203
|
-
|
|
196
|
+
this.removeConfiguredEventHandlers();
|
|
197
|
+
if (!params) return;
|
|
198
|
+
const {
|
|
199
|
+
on
|
|
200
|
+
} = params,
|
|
201
|
+
options = __rest(params, ["on"]);
|
|
202
|
+
_extends(this, options);
|
|
203
|
+
if (on) {
|
|
204
|
+
for (const eventName of Object.keys(on)) {
|
|
205
|
+
const handler = on[eventName];
|
|
206
|
+
if (typeof handler !== 'function') continue;
|
|
207
|
+
super.on(eventName, handler);
|
|
208
|
+
this.configuredEventHandlers.push({
|
|
209
|
+
eventName,
|
|
210
|
+
handler
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
204
214
|
}
|
|
205
215
|
emit(en, ...args) {
|
|
206
216
|
return super.emit(en, ...args);
|
|
@@ -211,8 +221,26 @@ var _EVA_IIFE_event = function (exports, pluginRenderer, eva_js, pixi_js) {
|
|
|
211
221
|
on(en, fn, context) {
|
|
212
222
|
return super.on(en, fn, context);
|
|
213
223
|
}
|
|
224
|
+
destroy() {
|
|
225
|
+
this.removeAllListeners();
|
|
226
|
+
this.configuredEventHandlers = [];
|
|
227
|
+
return this;
|
|
228
|
+
}
|
|
229
|
+
onDestroy() {
|
|
230
|
+
this.destroy();
|
|
231
|
+
}
|
|
232
|
+
removeConfiguredEventHandlers() {
|
|
233
|
+
for (const {
|
|
234
|
+
eventName,
|
|
235
|
+
handler
|
|
236
|
+
} of this.configuredEventHandlers) {
|
|
237
|
+
super.off(eventName, handler);
|
|
238
|
+
}
|
|
239
|
+
this.configuredEventHandlers = [];
|
|
240
|
+
}
|
|
214
241
|
}
|
|
215
242
|
Event.componentName = 'Event';
|
|
243
|
+
__decorate([eva_js.Field(() => HitAreaMetadata), __metadata("design:type", Object)], Event.prototype, "hitArea", void 0);
|
|
216
244
|
exports.Event = Event;
|
|
217
245
|
exports.EventSystem = Event$2;
|
|
218
246
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{},globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||{};var _EVA_IIFE_event=function(e,t,n,r){"use strict";function o(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s}function i(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}const s={Circle:r.Circle,Ellipse:r.Ellipse,Polygon:r.Polygon,Rect:r.Rectangle,RoundedRect:r.RoundedRectangle},a={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]};let c=class extends t.Renderer{constructor(){super(...arguments),this.name="EventSystem"}init(e){var n;const r=e,o=this.game||("function"==typeof(null==r?void 0:r.getSystem)?r:void 0),i=null===(n=null==o?void 0:o.getSystem)||void 0===n?void 0:n.call(o,t.RendererSystem);(null==i?void 0:i.rendererManager)&&(this.renderSystem=i,this.renderSystem.rendererManager.register(this))}update(e){super.update(e)}componentChanged(e){switch(e.type){case n.OBSERVER_TYPE.ADD:this.add(e);break;case n.OBSERVER_TYPE.REMOVE:this.remove(e);break;case n.OBSERVER_TYPE.CHANGE:this.change(e)}}add(e){var t;const n=null===(t=this.containerManager)||void 0===t?void 0:t.getContainer(e.gameObject.id);if(!n)return;n.interactive=!0,n.interactiveChildren=!0;const r=e.component;r.hitArea&&this.addHitArea(e,n,r.hitArea),n.on("pointertap",e=>{const t=this.createEventParam(n,r,e);r.emit("tap",t),r.emit("click",t)}),n.on("pointerdown",e=>{const t=this.createEventParam(n,r,e);r.emit("touchstart",t),r.emit("mousedown",t)}),n.on("pointermove",e=>{const t=this.createEventParam(n,r,e);r.emit("touchmove",t),r.emit("mousemove",t)}),n.on("pointerup",e=>{const t=this.createEventParam(n,r,e);r.emit("touchend",t),r.emit("mouseup",t)}),n.on("pointerupoutside",e=>{r.emit("touchendoutside",this.createEventParam(n,r,e))}),n.on("pointercancel",e=>{r.emit("touchcancel",this.createEventParam(n,r,e))})}createEventParam(e,t,n){return{stopPropagation:()=>n.stopPropagation(),data:{pointerId:n.data.pointerId,position:{x:n.data.global.x,y:n.data.global.y},localPosition:e.worldTransform.applyInverse(n.data.global)},gameObject:t.gameObject}}remove(e){var t;const n=null===(t=this.containerManager)||void 0===t?void 0:t.getContainer(e.gameObject.id);n&&(n.interactive=!1,n.off("pointertap"),n.off("pointerdown"),n.off("pointermove"),n.off("pointerup"),n.off("pointerupoutside"),n.off("pointercancel"),e.component.removeAllListeners())}change(e){var t;const n=null===(t=this.containerManager)||void 0===t?void 0:t.getContainer(e.gameObject.id);if(!n)return;n.interactive=!0;const r=e.component;r.hitArea?this.addHitArea(e,n,r.hitArea):r.hitArea=null}addHitArea(e,t,n){const{type:r,style:o}=n;if(!s[r])return void console.error(`${e.gameObject.name}'s hitArea type is not defined`);const i=[];for(const e of a[r])i.push(o[e]);const c=new s[r](...i);t.hitArea=c}};c.systemName="EventSystem",c=o([n.decorators.componentObserver({Event:[{prop:["hitArea"],deep:!0}]})],c);var d,p=c;e.HIT_AREA_TYPE=void 0,(d=e.HIT_AREA_TYPE||(e.HIT_AREA_TYPE={})).Circle="Circle",d.Ellipse="Ellipse",d.Polygon="Polygon",d.Rect="Rect",d.RoundedRect="RoundedRect";class l{}o([n.type("number"),n.step(1),i("design:type",Number)],l.prototype,"x",void 0),o([n.type("number"),n.step(1),i("design:type",Number)],l.prototype,"y",void 0),o([n.type("number"),n.step(1),i("design:type",Number)],l.prototype,"radius",void 0),o([n.type("number"),n.step(1),i("design:type",Number)],l.prototype,"width",void 0),o([n.type("number"),n.step(1),i("design:type",Number)],l.prototype,"height",void 0),o([n.type("number"),i("design:type",Array)],l.prototype,"paths",void 0);class u{}o([n.type("string"),i("design:type",String)],u.prototype,"type",void 0),o([n.Field(()=>l),i("design:type",Object)],u.prototype,"style",void 0);class h extends n.Component{constructor(e){super(e),this.hitArea=void 0,this.configuredEventHandlers=[],this.init(e)}init(e){if(this.removeConfiguredEventHandlers(),!e)return;const{on:t}=e;if(_extends(this,function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["on"])),t)for(const e of Object.keys(t)){const n=t[e];"function"==typeof n&&(super.on(e,n),this.configuredEventHandlers.push({eventName:e,handler:n}))}}emit(e,...t){return super.emit(e,...t)}once(e,t,n){return super.once(e,t,n)}on(e,t,n){return super.on(e,t,n)}destroy(){return this.removeAllListeners(),this.configuredEventHandlers=[],this}onDestroy(){this.destroy()}removeConfiguredEventHandlers(){for(const{eventName:e,handler:t}of this.configuredEventHandlers)super.off(e,t);this.configuredEventHandlers=[]}}return h.componentName="Event",o([n.Field(()=>u),i("design:type",Object)],h.prototype,"hitArea",void 0),e.Event=h,e.EventSystem=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA.plugin.renderer,EVA,PIXI);globalThis.EVA.plugin.renderer.event=globalThis.EVA.plugin.renderer.event||_EVA_IIFE_event;
|
|
@@ -21,6 +21,18 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
|
21
21
|
PERFORMANCE OF THIS SOFTWARE.
|
|
22
22
|
***************************************************************************** */
|
|
23
23
|
|
|
24
|
+
function __rest(s, e) {
|
|
25
|
+
var t = {};
|
|
26
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
27
|
+
t[p] = s[p];
|
|
28
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
29
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
30
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
31
|
+
t[p[i]] = s[p[i]];
|
|
32
|
+
}
|
|
33
|
+
return t;
|
|
34
|
+
}
|
|
35
|
+
|
|
24
36
|
function __decorate(decorators, target, key, desc) {
|
|
25
37
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
26
38
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -28,6 +40,10 @@ function __decorate(decorators, target, key, desc) {
|
|
|
28
40
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
29
41
|
}
|
|
30
42
|
|
|
43
|
+
function __metadata(metadataKey, metadataValue) {
|
|
44
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
45
|
+
}
|
|
46
|
+
|
|
31
47
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
32
48
|
var e = new Error(message);
|
|
33
49
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -50,12 +66,21 @@ const propertyForHitArea = {
|
|
|
50
66
|
let Event$1 = class Event extends pluginRenderer.Renderer {
|
|
51
67
|
constructor() {
|
|
52
68
|
super(...arguments);
|
|
53
|
-
this.name = '
|
|
69
|
+
this.name = 'EventSystem';
|
|
54
70
|
}
|
|
55
|
-
init() {
|
|
56
|
-
|
|
71
|
+
init(params) {
|
|
72
|
+
var _a;
|
|
73
|
+
const compatibleParams = params;
|
|
74
|
+
const game = this.game || (typeof (compatibleParams === null || compatibleParams === void 0 ? void 0 : compatibleParams.getSystem) === 'function' ? compatibleParams : undefined);
|
|
75
|
+
const renderSystem = (_a = game === null || game === void 0 ? void 0 : game.getSystem) === null || _a === void 0 ? void 0 : _a.call(game, pluginRenderer.RendererSystem);
|
|
76
|
+
if (!(renderSystem === null || renderSystem === void 0 ? void 0 : renderSystem.rendererManager))
|
|
77
|
+
return;
|
|
78
|
+
this.renderSystem = renderSystem;
|
|
57
79
|
this.renderSystem.rendererManager.register(this);
|
|
58
80
|
}
|
|
81
|
+
update(frame) {
|
|
82
|
+
super.update(frame);
|
|
83
|
+
}
|
|
59
84
|
componentChanged(changed) {
|
|
60
85
|
switch (changed.type) {
|
|
61
86
|
case eva_js.OBSERVER_TYPE.ADD:
|
|
@@ -70,7 +95,10 @@ let Event$1 = class Event extends pluginRenderer.Renderer {
|
|
|
70
95
|
}
|
|
71
96
|
}
|
|
72
97
|
add(changed) {
|
|
73
|
-
|
|
98
|
+
var _a;
|
|
99
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
100
|
+
if (!container)
|
|
101
|
+
return;
|
|
74
102
|
container.interactive = true;
|
|
75
103
|
container.interactiveChildren = true;
|
|
76
104
|
const component = changed.component;
|
|
@@ -78,100 +106,54 @@ let Event$1 = class Event extends pluginRenderer.Renderer {
|
|
|
78
106
|
this.addHitArea(changed, container, component.hitArea);
|
|
79
107
|
}
|
|
80
108
|
container.on('pointertap', e => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// @ts-ignore
|
|
85
|
-
pointerId: e.data.pointerId,
|
|
86
|
-
position: {
|
|
87
|
-
x: e.data.global.x,
|
|
88
|
-
y: e.data.global.y,
|
|
89
|
-
},
|
|
90
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
91
|
-
},
|
|
92
|
-
gameObject: component.gameObject,
|
|
93
|
-
});
|
|
109
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
110
|
+
component.emit('tap', eventParam);
|
|
111
|
+
component.emit('click', eventParam);
|
|
94
112
|
});
|
|
95
113
|
container.on('pointerdown', e => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// @ts-ignore
|
|
100
|
-
pointerId: e.data.pointerId,
|
|
101
|
-
position: {
|
|
102
|
-
x: e.data.global.x,
|
|
103
|
-
y: e.data.global.y,
|
|
104
|
-
},
|
|
105
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
106
|
-
},
|
|
107
|
-
gameObject: component.gameObject,
|
|
108
|
-
});
|
|
114
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
115
|
+
component.emit('touchstart', eventParam);
|
|
116
|
+
component.emit('mousedown', eventParam);
|
|
109
117
|
});
|
|
110
118
|
container.on('pointermove', e => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
// @ts-ignore
|
|
115
|
-
pointerId: e.data.pointerId,
|
|
116
|
-
position: {
|
|
117
|
-
x: e.data.global.x,
|
|
118
|
-
y: e.data.global.y,
|
|
119
|
-
},
|
|
120
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
121
|
-
},
|
|
122
|
-
gameObject: component.gameObject,
|
|
123
|
-
});
|
|
119
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
120
|
+
component.emit('touchmove', eventParam);
|
|
121
|
+
component.emit('mousemove', eventParam);
|
|
124
122
|
});
|
|
125
123
|
container.on('pointerup', e => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// @ts-ignore
|
|
130
|
-
pointerId: e.data.pointerId,
|
|
131
|
-
position: {
|
|
132
|
-
x: e.data.global.x,
|
|
133
|
-
y: e.data.global.y,
|
|
134
|
-
},
|
|
135
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
136
|
-
},
|
|
137
|
-
gameObject: component.gameObject,
|
|
138
|
-
});
|
|
124
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
125
|
+
component.emit('touchend', eventParam);
|
|
126
|
+
component.emit('mouseup', eventParam);
|
|
139
127
|
});
|
|
140
128
|
container.on('pointerupoutside', e => {
|
|
141
|
-
component.emit('touchendoutside',
|
|
142
|
-
stopPropagation: () => e.stopPropagation(),
|
|
143
|
-
data: {
|
|
144
|
-
// @ts-ignore
|
|
145
|
-
pointerId: e.data.pointerId,
|
|
146
|
-
position: {
|
|
147
|
-
x: e.data.global.x,
|
|
148
|
-
y: e.data.global.y,
|
|
149
|
-
},
|
|
150
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
151
|
-
},
|
|
152
|
-
gameObject: component.gameObject,
|
|
153
|
-
});
|
|
129
|
+
component.emit('touchendoutside', this.createEventParam(container, component, e));
|
|
154
130
|
});
|
|
155
131
|
container.on('pointercancel', e => {
|
|
156
|
-
component.emit('touchcancel',
|
|
157
|
-
stopPropagation: () => e.stopPropagation(),
|
|
158
|
-
data: {
|
|
159
|
-
// @ts-ignore
|
|
160
|
-
pointerId: e.data.pointerId,
|
|
161
|
-
position: {
|
|
162
|
-
x: e.data.global.x,
|
|
163
|
-
y: e.data.global.y,
|
|
164
|
-
},
|
|
165
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
166
|
-
},
|
|
167
|
-
gameObject: component.gameObject,
|
|
168
|
-
});
|
|
132
|
+
component.emit('touchcancel', this.createEventParam(container, component, e));
|
|
169
133
|
});
|
|
170
134
|
}
|
|
135
|
+
createEventParam(container, component, e) {
|
|
136
|
+
return {
|
|
137
|
+
stopPropagation: () => e.stopPropagation(),
|
|
138
|
+
data: {
|
|
139
|
+
// @ts-ignore
|
|
140
|
+
pointerId: e.data.pointerId,
|
|
141
|
+
position: {
|
|
142
|
+
x: e.data.global.x,
|
|
143
|
+
y: e.data.global.y,
|
|
144
|
+
},
|
|
145
|
+
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
146
|
+
},
|
|
147
|
+
gameObject: component.gameObject,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
171
150
|
remove(changed) {
|
|
172
|
-
|
|
151
|
+
var _a;
|
|
152
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
153
|
+
if (!container)
|
|
154
|
+
return;
|
|
173
155
|
container.interactive = false;
|
|
174
|
-
container.off('
|
|
156
|
+
container.off('pointertap');
|
|
175
157
|
container.off('pointerdown');
|
|
176
158
|
container.off('pointermove');
|
|
177
159
|
container.off('pointerup');
|
|
@@ -180,7 +162,10 @@ let Event$1 = class Event extends pluginRenderer.Renderer {
|
|
|
180
162
|
changed.component.removeAllListeners();
|
|
181
163
|
}
|
|
182
164
|
change(changed) {
|
|
183
|
-
|
|
165
|
+
var _a;
|
|
166
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
167
|
+
if (!container)
|
|
168
|
+
return;
|
|
184
169
|
container.interactive = true;
|
|
185
170
|
const component = changed.component;
|
|
186
171
|
if (component.hitArea) {
|
|
@@ -204,7 +189,7 @@ let Event$1 = class Event extends pluginRenderer.Renderer {
|
|
|
204
189
|
container.hitArea = hitAreaShape;
|
|
205
190
|
}
|
|
206
191
|
};
|
|
207
|
-
Event$1.systemName = '
|
|
192
|
+
Event$1.systemName = 'EventSystem';
|
|
208
193
|
Event$1 = __decorate([
|
|
209
194
|
eva_js.decorators.componentObserver({
|
|
210
195
|
Event: [{ prop: ['hitArea'], deep: true }],
|
|
@@ -220,6 +205,47 @@ exports.HIT_AREA_TYPE = void 0;
|
|
|
220
205
|
HIT_AREA_TYPE["Rect"] = "Rect";
|
|
221
206
|
HIT_AREA_TYPE["RoundedRect"] = "RoundedRect";
|
|
222
207
|
})(exports.HIT_AREA_TYPE || (exports.HIT_AREA_TYPE = {}));
|
|
208
|
+
class HitAreaStyleMetadata {
|
|
209
|
+
}
|
|
210
|
+
__decorate([
|
|
211
|
+
eva_js.type('number'),
|
|
212
|
+
eva_js.step(1),
|
|
213
|
+
__metadata("design:type", Number)
|
|
214
|
+
], HitAreaStyleMetadata.prototype, "x", void 0);
|
|
215
|
+
__decorate([
|
|
216
|
+
eva_js.type('number'),
|
|
217
|
+
eva_js.step(1),
|
|
218
|
+
__metadata("design:type", Number)
|
|
219
|
+
], HitAreaStyleMetadata.prototype, "y", void 0);
|
|
220
|
+
__decorate([
|
|
221
|
+
eva_js.type('number'),
|
|
222
|
+
eva_js.step(1),
|
|
223
|
+
__metadata("design:type", Number)
|
|
224
|
+
], HitAreaStyleMetadata.prototype, "radius", void 0);
|
|
225
|
+
__decorate([
|
|
226
|
+
eva_js.type('number'),
|
|
227
|
+
eva_js.step(1),
|
|
228
|
+
__metadata("design:type", Number)
|
|
229
|
+
], HitAreaStyleMetadata.prototype, "width", void 0);
|
|
230
|
+
__decorate([
|
|
231
|
+
eva_js.type('number'),
|
|
232
|
+
eva_js.step(1),
|
|
233
|
+
__metadata("design:type", Number)
|
|
234
|
+
], HitAreaStyleMetadata.prototype, "height", void 0);
|
|
235
|
+
__decorate([
|
|
236
|
+
eva_js.type('number'),
|
|
237
|
+
__metadata("design:type", Array)
|
|
238
|
+
], HitAreaStyleMetadata.prototype, "paths", void 0);
|
|
239
|
+
class HitAreaMetadata {
|
|
240
|
+
}
|
|
241
|
+
__decorate([
|
|
242
|
+
eva_js.type('string'),
|
|
243
|
+
__metadata("design:type", String)
|
|
244
|
+
], HitAreaMetadata.prototype, "type", void 0);
|
|
245
|
+
__decorate([
|
|
246
|
+
eva_js.Field(() => HitAreaStyleMetadata),
|
|
247
|
+
__metadata("design:type", Object)
|
|
248
|
+
], HitAreaMetadata.prototype, "style", void 0);
|
|
223
249
|
/**
|
|
224
250
|
* 事件组件
|
|
225
251
|
*
|
|
@@ -278,18 +304,32 @@ exports.HIT_AREA_TYPE = void 0;
|
|
|
278
304
|
* ```
|
|
279
305
|
*/
|
|
280
306
|
class Event extends eva_js.Component {
|
|
281
|
-
constructor() {
|
|
282
|
-
super(
|
|
307
|
+
constructor(params) {
|
|
308
|
+
super(params);
|
|
283
309
|
/** 交互热区配置 */
|
|
284
310
|
this.hitArea = undefined;
|
|
311
|
+
this.configuredEventHandlers = [];
|
|
312
|
+
this.init(params);
|
|
285
313
|
}
|
|
286
314
|
/**
|
|
287
315
|
* 初始化组件
|
|
288
316
|
* @param params - 初始化参数
|
|
289
|
-
* @param params.hitArea - 交互热区配置
|
|
290
317
|
*/
|
|
291
318
|
init(params) {
|
|
292
|
-
|
|
319
|
+
this.removeConfiguredEventHandlers();
|
|
320
|
+
if (!params)
|
|
321
|
+
return;
|
|
322
|
+
const { on } = params, options = __rest(params, ["on"]);
|
|
323
|
+
Object.assign(this, options);
|
|
324
|
+
if (on) {
|
|
325
|
+
for (const eventName of Object.keys(on)) {
|
|
326
|
+
const handler = on[eventName];
|
|
327
|
+
if (typeof handler !== 'function')
|
|
328
|
+
continue;
|
|
329
|
+
super.on(eventName, handler);
|
|
330
|
+
this.configuredEventHandlers.push({ eventName, handler });
|
|
331
|
+
}
|
|
332
|
+
}
|
|
293
333
|
}
|
|
294
334
|
emit(en, ...args) {
|
|
295
335
|
return super.emit(en, ...args);
|
|
@@ -300,9 +340,27 @@ class Event extends eva_js.Component {
|
|
|
300
340
|
on(en, fn, context) {
|
|
301
341
|
return super.on(en, fn, context);
|
|
302
342
|
}
|
|
343
|
+
destroy() {
|
|
344
|
+
this.removeAllListeners();
|
|
345
|
+
this.configuredEventHandlers = [];
|
|
346
|
+
return this;
|
|
347
|
+
}
|
|
348
|
+
onDestroy() {
|
|
349
|
+
this.destroy();
|
|
350
|
+
}
|
|
351
|
+
removeConfiguredEventHandlers() {
|
|
352
|
+
for (const { eventName, handler } of this.configuredEventHandlers) {
|
|
353
|
+
super.off(eventName, handler);
|
|
354
|
+
}
|
|
355
|
+
this.configuredEventHandlers = [];
|
|
356
|
+
}
|
|
303
357
|
}
|
|
304
358
|
/** 组件名称 */
|
|
305
|
-
Event.componentName = 'Event';
|
|
359
|
+
Event.componentName = 'Event';
|
|
360
|
+
__decorate([
|
|
361
|
+
eva_js.Field(() => HitAreaMetadata),
|
|
362
|
+
__metadata("design:type", Object)
|
|
363
|
+
], Event.prototype, "hitArea", void 0);
|
|
306
364
|
|
|
307
365
|
exports.Event = Event;
|
|
308
366
|
exports.EventSystem = Event$2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/plugin-renderer"),t=require("@eva/eva.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/plugin-renderer"),t=require("@eva/eva.js"),r=require("pixi.js");function o(e,t,r,o){var n,i=arguments.length,s=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(i<3?n(s):i>3?n(t,r,s):n(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s}function n(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}"function"==typeof SuppressedError&&SuppressedError;const i={Circle:r.Circle,Ellipse:r.Ellipse,Polygon:r.Polygon,Rect:r.Rectangle,RoundedRect:r.RoundedRectangle},s={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]};let a=class extends e.Renderer{constructor(){super(...arguments),this.name="EventSystem"}init(t){var r;const o=t,n=this.game||("function"==typeof(null==o?void 0:o.getSystem)?o:void 0),i=null===(r=null==n?void 0:n.getSystem)||void 0===r?void 0:r.call(n,e.RendererSystem);(null==i?void 0:i.rendererManager)&&(this.renderSystem=i,this.renderSystem.rendererManager.register(this))}update(e){super.update(e)}componentChanged(e){switch(e.type){case t.OBSERVER_TYPE.ADD:this.add(e);break;case t.OBSERVER_TYPE.REMOVE:this.remove(e);break;case t.OBSERVER_TYPE.CHANGE:this.change(e)}}add(e){var t;const r=null===(t=this.containerManager)||void 0===t?void 0:t.getContainer(e.gameObject.id);if(!r)return;r.interactive=!0,r.interactiveChildren=!0;const o=e.component;o.hitArea&&this.addHitArea(e,r,o.hitArea),r.on("pointertap",e=>{const t=this.createEventParam(r,o,e);o.emit("tap",t),o.emit("click",t)}),r.on("pointerdown",e=>{const t=this.createEventParam(r,o,e);o.emit("touchstart",t),o.emit("mousedown",t)}),r.on("pointermove",e=>{const t=this.createEventParam(r,o,e);o.emit("touchmove",t),o.emit("mousemove",t)}),r.on("pointerup",e=>{const t=this.createEventParam(r,o,e);o.emit("touchend",t),o.emit("mouseup",t)}),r.on("pointerupoutside",e=>{o.emit("touchendoutside",this.createEventParam(r,o,e))}),r.on("pointercancel",e=>{o.emit("touchcancel",this.createEventParam(r,o,e))})}createEventParam(e,t,r){return{stopPropagation:()=>r.stopPropagation(),data:{pointerId:r.data.pointerId,position:{x:r.data.global.x,y:r.data.global.y},localPosition:e.worldTransform.applyInverse(r.data.global)},gameObject:t.gameObject}}remove(e){var t;const r=null===(t=this.containerManager)||void 0===t?void 0:t.getContainer(e.gameObject.id);r&&(r.interactive=!1,r.off("pointertap"),r.off("pointerdown"),r.off("pointermove"),r.off("pointerup"),r.off("pointerupoutside"),r.off("pointercancel"),e.component.removeAllListeners())}change(e){var t;const r=null===(t=this.containerManager)||void 0===t?void 0:t.getContainer(e.gameObject.id);if(!r)return;r.interactive=!0;const o=e.component;o.hitArea?this.addHitArea(e,r,o.hitArea):o.hitArea=null}addHitArea(e,t,r){const{type:o,style:n}=r;if(!i[o])return void console.error(`${e.gameObject.name}'s hitArea type is not defined`);const a=[];for(const e of s[o])a.push(n[e]);const p=new i[o](...a);t.hitArea=p}};a.systemName="EventSystem",a=o([t.decorators.componentObserver({Event:[{prop:["hitArea"],deep:!0}]})],a);var p,c=a;exports.HIT_AREA_TYPE=void 0,(p=exports.HIT_AREA_TYPE||(exports.HIT_AREA_TYPE={})).Circle="Circle",p.Ellipse="Ellipse",p.Polygon="Polygon",p.Rect="Rect",p.RoundedRect="RoundedRect";class d{}o([t.type("number"),t.step(1),n("design:type",Number)],d.prototype,"x",void 0),o([t.type("number"),t.step(1),n("design:type",Number)],d.prototype,"y",void 0),o([t.type("number"),t.step(1),n("design:type",Number)],d.prototype,"radius",void 0),o([t.type("number"),t.step(1),n("design:type",Number)],d.prototype,"width",void 0),o([t.type("number"),t.step(1),n("design:type",Number)],d.prototype,"height",void 0),o([t.type("number"),n("design:type",Array)],d.prototype,"paths",void 0);class l{}o([t.type("string"),n("design:type",String)],l.prototype,"type",void 0),o([t.Field(()=>d),n("design:type",Object)],l.prototype,"style",void 0);class u extends t.Component{constructor(e){super(e),this.hitArea=void 0,this.configuredEventHandlers=[],this.init(e)}init(e){if(this.removeConfiguredEventHandlers(),!e)return;const{on:t}=e,r=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}(e,["on"]);if(Object.assign(this,r),t)for(const e of Object.keys(t)){const r=t[e];"function"==typeof r&&(super.on(e,r),this.configuredEventHandlers.push({eventName:e,handler:r}))}}emit(e,...t){return super.emit(e,...t)}once(e,t,r){return super.once(e,t,r)}on(e,t,r){return super.on(e,t,r)}destroy(){return this.removeAllListeners(),this.configuredEventHandlers=[],this}onDestroy(){this.destroy()}removeConfiguredEventHandlers(){for(const{eventName:e,handler:t}of this.configuredEventHandlers)super.off(e,t);this.configuredEventHandlers=[]}}u.componentName="Event",o([t.Field(()=>l),n("design:type",Object)],u.prototype,"hitArea",void 0),exports.Event=u,exports.EventSystem=c;
|
|
@@ -68,10 +68,14 @@ declare class Event_2 extends Component<EventParams> {
|
|
|
68
68
|
static componentName: string;
|
|
69
69
|
/** 交互热区配置 */
|
|
70
70
|
hitArea: HitArea;
|
|
71
|
+
interactive?: boolean;
|
|
72
|
+
cursor?: string;
|
|
73
|
+
stopPropagation?: boolean;
|
|
74
|
+
private configuredEventHandlers;
|
|
75
|
+
constructor(params?: EventParams);
|
|
71
76
|
/**
|
|
72
77
|
* 初始化组件
|
|
73
78
|
* @param params - 初始化参数
|
|
74
|
-
* @param params.hitArea - 交互热区配置
|
|
75
79
|
*/
|
|
76
80
|
init(params?: EventParams): void;
|
|
77
81
|
emit(eventName: TouchEventName, ...args: [EventParam]): boolean;
|
|
@@ -80,6 +84,9 @@ declare class Event_2 extends Component<EventParams> {
|
|
|
80
84
|
once<T extends string>(eventName: Exclude<T, TouchEventName>, fn: (...args: any[]) => void, context?: any): this;
|
|
81
85
|
on(eventName: TouchEventName, fn: (arg: EventParam) => void, context?: any): this;
|
|
82
86
|
on<T extends string>(eventName: Exclude<T, TouchEventName>, fn: (...args: any[]) => void, context?: any): this;
|
|
87
|
+
destroy(): this;
|
|
88
|
+
onDestroy(): void;
|
|
89
|
+
private removeConfiguredEventHandlers;
|
|
83
90
|
}
|
|
84
91
|
export { Event_2 as Event }
|
|
85
92
|
|
|
@@ -103,7 +110,11 @@ declare type EventParam = {
|
|
|
103
110
|
};
|
|
104
111
|
|
|
105
112
|
export declare interface EventParams {
|
|
106
|
-
|
|
113
|
+
interactive?: boolean;
|
|
114
|
+
cursor?: string;
|
|
115
|
+
stopPropagation?: boolean;
|
|
116
|
+
hitArea?: HitArea;
|
|
117
|
+
on?: Record<string, (...args: any[]) => void>;
|
|
107
118
|
}
|
|
108
119
|
|
|
109
120
|
export declare class EventSystem extends Renderer<EventSystemParams> {
|
|
@@ -112,9 +123,13 @@ export declare class EventSystem extends Renderer<EventSystemParams> {
|
|
|
112
123
|
renderSystem: RendererSystem;
|
|
113
124
|
rendererManager: RendererManager;
|
|
114
125
|
containerManager: ContainerManager;
|
|
115
|
-
init(
|
|
126
|
+
init(params?: EventSystemParams | {
|
|
127
|
+
getSystem?: (...args: any[]) => unknown;
|
|
128
|
+
}): void;
|
|
129
|
+
update(frame?: unknown): void;
|
|
116
130
|
componentChanged(changed: ComponentChanged): void;
|
|
117
131
|
add(changed: ComponentChanged): void;
|
|
132
|
+
private createEventParam;
|
|
118
133
|
remove(changed: ComponentChanged): void;
|
|
119
134
|
change(changed: ComponentChanged): void;
|
|
120
135
|
addHitArea(changed: ComponentChanged, container: any, hitArea: any): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Renderer, RendererSystem } from '@eva/plugin-renderer';
|
|
2
|
-
import { OBSERVER_TYPE, decorators, Component } from '@eva/eva.js';
|
|
2
|
+
import { OBSERVER_TYPE, decorators, Component, type, step, Field } from '@eva/eva.js';
|
|
3
3
|
import { Circle, Ellipse, Polygon, Rectangle, RoundedRectangle } from 'pixi.js';
|
|
4
4
|
|
|
5
5
|
/******************************************************************************
|
|
@@ -17,6 +17,18 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
|
17
17
|
PERFORMANCE OF THIS SOFTWARE.
|
|
18
18
|
***************************************************************************** */
|
|
19
19
|
|
|
20
|
+
function __rest(s, e) {
|
|
21
|
+
var t = {};
|
|
22
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
23
|
+
t[p] = s[p];
|
|
24
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
25
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
26
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
27
|
+
t[p[i]] = s[p[i]];
|
|
28
|
+
}
|
|
29
|
+
return t;
|
|
30
|
+
}
|
|
31
|
+
|
|
20
32
|
function __decorate(decorators, target, key, desc) {
|
|
21
33
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
22
34
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -24,6 +36,10 @@ function __decorate(decorators, target, key, desc) {
|
|
|
24
36
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
25
37
|
}
|
|
26
38
|
|
|
39
|
+
function __metadata(metadataKey, metadataValue) {
|
|
40
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
41
|
+
}
|
|
42
|
+
|
|
27
43
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
28
44
|
var e = new Error(message);
|
|
29
45
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -46,12 +62,21 @@ const propertyForHitArea = {
|
|
|
46
62
|
let Event$1 = class Event extends Renderer {
|
|
47
63
|
constructor() {
|
|
48
64
|
super(...arguments);
|
|
49
|
-
this.name = '
|
|
65
|
+
this.name = 'EventSystem';
|
|
50
66
|
}
|
|
51
|
-
init() {
|
|
52
|
-
|
|
67
|
+
init(params) {
|
|
68
|
+
var _a;
|
|
69
|
+
const compatibleParams = params;
|
|
70
|
+
const game = this.game || (typeof (compatibleParams === null || compatibleParams === void 0 ? void 0 : compatibleParams.getSystem) === 'function' ? compatibleParams : undefined);
|
|
71
|
+
const renderSystem = (_a = game === null || game === void 0 ? void 0 : game.getSystem) === null || _a === void 0 ? void 0 : _a.call(game, RendererSystem);
|
|
72
|
+
if (!(renderSystem === null || renderSystem === void 0 ? void 0 : renderSystem.rendererManager))
|
|
73
|
+
return;
|
|
74
|
+
this.renderSystem = renderSystem;
|
|
53
75
|
this.renderSystem.rendererManager.register(this);
|
|
54
76
|
}
|
|
77
|
+
update(frame) {
|
|
78
|
+
super.update(frame);
|
|
79
|
+
}
|
|
55
80
|
componentChanged(changed) {
|
|
56
81
|
switch (changed.type) {
|
|
57
82
|
case OBSERVER_TYPE.ADD:
|
|
@@ -66,7 +91,10 @@ let Event$1 = class Event extends Renderer {
|
|
|
66
91
|
}
|
|
67
92
|
}
|
|
68
93
|
add(changed) {
|
|
69
|
-
|
|
94
|
+
var _a;
|
|
95
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
96
|
+
if (!container)
|
|
97
|
+
return;
|
|
70
98
|
container.interactive = true;
|
|
71
99
|
container.interactiveChildren = true;
|
|
72
100
|
const component = changed.component;
|
|
@@ -74,100 +102,54 @@ let Event$1 = class Event extends Renderer {
|
|
|
74
102
|
this.addHitArea(changed, container, component.hitArea);
|
|
75
103
|
}
|
|
76
104
|
container.on('pointertap', e => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// @ts-ignore
|
|
81
|
-
pointerId: e.data.pointerId,
|
|
82
|
-
position: {
|
|
83
|
-
x: e.data.global.x,
|
|
84
|
-
y: e.data.global.y,
|
|
85
|
-
},
|
|
86
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
87
|
-
},
|
|
88
|
-
gameObject: component.gameObject,
|
|
89
|
-
});
|
|
105
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
106
|
+
component.emit('tap', eventParam);
|
|
107
|
+
component.emit('click', eventParam);
|
|
90
108
|
});
|
|
91
109
|
container.on('pointerdown', e => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// @ts-ignore
|
|
96
|
-
pointerId: e.data.pointerId,
|
|
97
|
-
position: {
|
|
98
|
-
x: e.data.global.x,
|
|
99
|
-
y: e.data.global.y,
|
|
100
|
-
},
|
|
101
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
102
|
-
},
|
|
103
|
-
gameObject: component.gameObject,
|
|
104
|
-
});
|
|
110
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
111
|
+
component.emit('touchstart', eventParam);
|
|
112
|
+
component.emit('mousedown', eventParam);
|
|
105
113
|
});
|
|
106
114
|
container.on('pointermove', e => {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
// @ts-ignore
|
|
111
|
-
pointerId: e.data.pointerId,
|
|
112
|
-
position: {
|
|
113
|
-
x: e.data.global.x,
|
|
114
|
-
y: e.data.global.y,
|
|
115
|
-
},
|
|
116
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
117
|
-
},
|
|
118
|
-
gameObject: component.gameObject,
|
|
119
|
-
});
|
|
115
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
116
|
+
component.emit('touchmove', eventParam);
|
|
117
|
+
component.emit('mousemove', eventParam);
|
|
120
118
|
});
|
|
121
119
|
container.on('pointerup', e => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
// @ts-ignore
|
|
126
|
-
pointerId: e.data.pointerId,
|
|
127
|
-
position: {
|
|
128
|
-
x: e.data.global.x,
|
|
129
|
-
y: e.data.global.y,
|
|
130
|
-
},
|
|
131
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
132
|
-
},
|
|
133
|
-
gameObject: component.gameObject,
|
|
134
|
-
});
|
|
120
|
+
const eventParam = this.createEventParam(container, component, e);
|
|
121
|
+
component.emit('touchend', eventParam);
|
|
122
|
+
component.emit('mouseup', eventParam);
|
|
135
123
|
});
|
|
136
124
|
container.on('pointerupoutside', e => {
|
|
137
|
-
component.emit('touchendoutside',
|
|
138
|
-
stopPropagation: () => e.stopPropagation(),
|
|
139
|
-
data: {
|
|
140
|
-
// @ts-ignore
|
|
141
|
-
pointerId: e.data.pointerId,
|
|
142
|
-
position: {
|
|
143
|
-
x: e.data.global.x,
|
|
144
|
-
y: e.data.global.y,
|
|
145
|
-
},
|
|
146
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
147
|
-
},
|
|
148
|
-
gameObject: component.gameObject,
|
|
149
|
-
});
|
|
125
|
+
component.emit('touchendoutside', this.createEventParam(container, component, e));
|
|
150
126
|
});
|
|
151
127
|
container.on('pointercancel', e => {
|
|
152
|
-
component.emit('touchcancel',
|
|
153
|
-
stopPropagation: () => e.stopPropagation(),
|
|
154
|
-
data: {
|
|
155
|
-
// @ts-ignore
|
|
156
|
-
pointerId: e.data.pointerId,
|
|
157
|
-
position: {
|
|
158
|
-
x: e.data.global.x,
|
|
159
|
-
y: e.data.global.y,
|
|
160
|
-
},
|
|
161
|
-
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
162
|
-
},
|
|
163
|
-
gameObject: component.gameObject,
|
|
164
|
-
});
|
|
128
|
+
component.emit('touchcancel', this.createEventParam(container, component, e));
|
|
165
129
|
});
|
|
166
130
|
}
|
|
131
|
+
createEventParam(container, component, e) {
|
|
132
|
+
return {
|
|
133
|
+
stopPropagation: () => e.stopPropagation(),
|
|
134
|
+
data: {
|
|
135
|
+
// @ts-ignore
|
|
136
|
+
pointerId: e.data.pointerId,
|
|
137
|
+
position: {
|
|
138
|
+
x: e.data.global.x,
|
|
139
|
+
y: e.data.global.y,
|
|
140
|
+
},
|
|
141
|
+
localPosition: container.worldTransform.applyInverse(e.data.global),
|
|
142
|
+
},
|
|
143
|
+
gameObject: component.gameObject,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
167
146
|
remove(changed) {
|
|
168
|
-
|
|
147
|
+
var _a;
|
|
148
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
149
|
+
if (!container)
|
|
150
|
+
return;
|
|
169
151
|
container.interactive = false;
|
|
170
|
-
container.off('
|
|
152
|
+
container.off('pointertap');
|
|
171
153
|
container.off('pointerdown');
|
|
172
154
|
container.off('pointermove');
|
|
173
155
|
container.off('pointerup');
|
|
@@ -176,7 +158,10 @@ let Event$1 = class Event extends Renderer {
|
|
|
176
158
|
changed.component.removeAllListeners();
|
|
177
159
|
}
|
|
178
160
|
change(changed) {
|
|
179
|
-
|
|
161
|
+
var _a;
|
|
162
|
+
const container = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(changed.gameObject.id);
|
|
163
|
+
if (!container)
|
|
164
|
+
return;
|
|
180
165
|
container.interactive = true;
|
|
181
166
|
const component = changed.component;
|
|
182
167
|
if (component.hitArea) {
|
|
@@ -200,7 +185,7 @@ let Event$1 = class Event extends Renderer {
|
|
|
200
185
|
container.hitArea = hitAreaShape;
|
|
201
186
|
}
|
|
202
187
|
};
|
|
203
|
-
Event$1.systemName = '
|
|
188
|
+
Event$1.systemName = 'EventSystem';
|
|
204
189
|
Event$1 = __decorate([
|
|
205
190
|
decorators.componentObserver({
|
|
206
191
|
Event: [{ prop: ['hitArea'], deep: true }],
|
|
@@ -216,6 +201,47 @@ var HIT_AREA_TYPE;
|
|
|
216
201
|
HIT_AREA_TYPE["Rect"] = "Rect";
|
|
217
202
|
HIT_AREA_TYPE["RoundedRect"] = "RoundedRect";
|
|
218
203
|
})(HIT_AREA_TYPE || (HIT_AREA_TYPE = {}));
|
|
204
|
+
class HitAreaStyleMetadata {
|
|
205
|
+
}
|
|
206
|
+
__decorate([
|
|
207
|
+
type('number'),
|
|
208
|
+
step(1),
|
|
209
|
+
__metadata("design:type", Number)
|
|
210
|
+
], HitAreaStyleMetadata.prototype, "x", void 0);
|
|
211
|
+
__decorate([
|
|
212
|
+
type('number'),
|
|
213
|
+
step(1),
|
|
214
|
+
__metadata("design:type", Number)
|
|
215
|
+
], HitAreaStyleMetadata.prototype, "y", void 0);
|
|
216
|
+
__decorate([
|
|
217
|
+
type('number'),
|
|
218
|
+
step(1),
|
|
219
|
+
__metadata("design:type", Number)
|
|
220
|
+
], HitAreaStyleMetadata.prototype, "radius", void 0);
|
|
221
|
+
__decorate([
|
|
222
|
+
type('number'),
|
|
223
|
+
step(1),
|
|
224
|
+
__metadata("design:type", Number)
|
|
225
|
+
], HitAreaStyleMetadata.prototype, "width", void 0);
|
|
226
|
+
__decorate([
|
|
227
|
+
type('number'),
|
|
228
|
+
step(1),
|
|
229
|
+
__metadata("design:type", Number)
|
|
230
|
+
], HitAreaStyleMetadata.prototype, "height", void 0);
|
|
231
|
+
__decorate([
|
|
232
|
+
type('number'),
|
|
233
|
+
__metadata("design:type", Array)
|
|
234
|
+
], HitAreaStyleMetadata.prototype, "paths", void 0);
|
|
235
|
+
class HitAreaMetadata {
|
|
236
|
+
}
|
|
237
|
+
__decorate([
|
|
238
|
+
type('string'),
|
|
239
|
+
__metadata("design:type", String)
|
|
240
|
+
], HitAreaMetadata.prototype, "type", void 0);
|
|
241
|
+
__decorate([
|
|
242
|
+
Field(() => HitAreaStyleMetadata),
|
|
243
|
+
__metadata("design:type", Object)
|
|
244
|
+
], HitAreaMetadata.prototype, "style", void 0);
|
|
219
245
|
/**
|
|
220
246
|
* 事件组件
|
|
221
247
|
*
|
|
@@ -274,18 +300,32 @@ var HIT_AREA_TYPE;
|
|
|
274
300
|
* ```
|
|
275
301
|
*/
|
|
276
302
|
class Event extends Component {
|
|
277
|
-
constructor() {
|
|
278
|
-
super(
|
|
303
|
+
constructor(params) {
|
|
304
|
+
super(params);
|
|
279
305
|
/** 交互热区配置 */
|
|
280
306
|
this.hitArea = undefined;
|
|
307
|
+
this.configuredEventHandlers = [];
|
|
308
|
+
this.init(params);
|
|
281
309
|
}
|
|
282
310
|
/**
|
|
283
311
|
* 初始化组件
|
|
284
312
|
* @param params - 初始化参数
|
|
285
|
-
* @param params.hitArea - 交互热区配置
|
|
286
313
|
*/
|
|
287
314
|
init(params) {
|
|
288
|
-
|
|
315
|
+
this.removeConfiguredEventHandlers();
|
|
316
|
+
if (!params)
|
|
317
|
+
return;
|
|
318
|
+
const { on } = params, options = __rest(params, ["on"]);
|
|
319
|
+
Object.assign(this, options);
|
|
320
|
+
if (on) {
|
|
321
|
+
for (const eventName of Object.keys(on)) {
|
|
322
|
+
const handler = on[eventName];
|
|
323
|
+
if (typeof handler !== 'function')
|
|
324
|
+
continue;
|
|
325
|
+
super.on(eventName, handler);
|
|
326
|
+
this.configuredEventHandlers.push({ eventName, handler });
|
|
327
|
+
}
|
|
328
|
+
}
|
|
289
329
|
}
|
|
290
330
|
emit(en, ...args) {
|
|
291
331
|
return super.emit(en, ...args);
|
|
@@ -296,8 +336,26 @@ class Event extends Component {
|
|
|
296
336
|
on(en, fn, context) {
|
|
297
337
|
return super.on(en, fn, context);
|
|
298
338
|
}
|
|
339
|
+
destroy() {
|
|
340
|
+
this.removeAllListeners();
|
|
341
|
+
this.configuredEventHandlers = [];
|
|
342
|
+
return this;
|
|
343
|
+
}
|
|
344
|
+
onDestroy() {
|
|
345
|
+
this.destroy();
|
|
346
|
+
}
|
|
347
|
+
removeConfiguredEventHandlers() {
|
|
348
|
+
for (const { eventName, handler } of this.configuredEventHandlers) {
|
|
349
|
+
super.off(eventName, handler);
|
|
350
|
+
}
|
|
351
|
+
this.configuredEventHandlers = [];
|
|
352
|
+
}
|
|
299
353
|
}
|
|
300
354
|
/** 组件名称 */
|
|
301
|
-
Event.componentName = 'Event';
|
|
355
|
+
Event.componentName = 'Event';
|
|
356
|
+
__decorate([
|
|
357
|
+
Field(() => HitAreaMetadata),
|
|
358
|
+
__metadata("design:type", Object)
|
|
359
|
+
], Event.prototype, "hitArea", void 0);
|
|
302
360
|
|
|
303
361
|
export { Event, Event$2 as EventSystem, HIT_AREA_TYPE };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer-event",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-beta.1",
|
|
4
4
|
"description": "@eva/plugin-renderer-event",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer-event.esm.js",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"homepage": "https://eva.js.org",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@eva/plugin-renderer": "2.0.
|
|
22
|
-
"@eva/eva.js": "2.0.
|
|
21
|
+
"@eva/plugin-renderer": "2.1.0-beta.1",
|
|
22
|
+
"@eva/eva.js": "2.1.0-beta.1",
|
|
23
23
|
"pixi.js": "^8.17.0"
|
|
24
24
|
}
|
|
25
25
|
}
|