@eva/spine-base 1.2.6 → 1.2.7-editor.2

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.
@@ -13,7 +13,7 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
13
13
  d.__proto__ = b;
14
14
  } || function (d, b) {
15
15
  for (var p in b) {
16
- if (b.hasOwnProperty(p)) d[p] = b[p];
16
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
17
17
  }
18
18
  };
19
19
 
@@ -21,6 +21,8 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
21
21
  };
22
22
 
23
23
  function __extends(d, b) {
24
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
25
+
24
26
  _extendStatics(d, b);
25
27
 
26
28
  function __() {
@@ -30,6 +32,22 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
30
32
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31
33
  }
32
34
 
35
+ var _assign = function __assign() {
36
+ _assign = Object.assign || function __assign(t) {
37
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
38
+ s = arguments[i];
39
+
40
+ for (var p in s) {
41
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
42
+ }
43
+ }
44
+
45
+ return t;
46
+ };
47
+
48
+ return _assign.apply(this, arguments);
49
+ };
50
+
33
51
  function __decorate(decorators, target, key, desc) {
34
52
  var c = arguments.length,
35
53
  r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
@@ -40,6 +58,10 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
40
58
  return c > 3 && r && Object.defineProperty(target, key, r), r;
41
59
  }
42
60
 
61
+ function __metadata(metadataKey, metadataValue) {
62
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
63
+ }
64
+
43
65
  function __awaiter(thisArg, _arguments, P, generator) {
44
66
  function adopt(value) {
45
67
  return value instanceof P ? value : new P(function (resolve) {
@@ -200,24 +222,106 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
200
222
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
201
223
  }
202
224
 
203
- function getIDEPropsPropertyObj(target, propertyKey) {
204
- if (!target.constructor.IDEProps) {
205
- target.constructor.IDEProps = {};
225
+ var SymbolKeysNotSupportedError = function (_super) {
226
+ __extends(SymbolKeysNotSupportedError, _super);
227
+
228
+ function SymbolKeysNotSupportedError() {
229
+ var _newTarget = this.constructor;
230
+
231
+ var _this = _super.call(this, 'Symbol keys are not supported yet!') || this;
232
+
233
+ Object.setPrototypeOf(_this, _newTarget.prototype);
234
+ return _this;
235
+ }
236
+
237
+ return SymbolKeysNotSupportedError;
238
+ }(Error);
239
+
240
+ (function (_super) {
241
+ __extends(StaticGetPropertiesIsNotAFunctionError, _super);
242
+
243
+ function StaticGetPropertiesIsNotAFunctionError() {
244
+ var _newTarget = this.constructor;
245
+
246
+ var _this = _super.call(this, 'getProperties is not a function!') || this;
247
+
248
+ Object.setPrototypeOf(_this, _newTarget.prototype);
249
+ return _this;
250
+ }
251
+
252
+ return StaticGetPropertiesIsNotAFunctionError;
253
+ })(Error);
254
+
255
+ var IDE_PROPERTY_METADATA = 'IDE_PROPERTY_METADATA';
256
+
257
+ function transformBasicType(type) {
258
+ if (type === String) {
259
+ return 'string';
260
+ }
261
+
262
+ if (type === Number) {
263
+ return 'number';
264
+ }
265
+
266
+ if (type === Boolean) {
267
+ return 'boolean';
268
+ }
269
+
270
+ return 'unknown';
271
+ }
272
+
273
+ function defineTypes(target, key, options, returnTypeFunction) {
274
+ var type = Reflect.getMetadata('design:type', target, key);
275
+ var isArray = type === Array;
276
+ var str = transformBasicType(type);
277
+
278
+ if (str !== 'unknown') {
279
+ type = str;
280
+ }
281
+
282
+ if (returnTypeFunction) {
283
+ var returnType = returnTypeFunction();
284
+
285
+ if (Array.isArray(returnType)) {
286
+ isArray = true;
287
+ type = returnType[0];
288
+ } else {
289
+ type = returnType;
290
+ }
206
291
  }
207
292
 
208
- if (!target.constructor.IDEProps[propertyKey]) {
209
- target.constructor.IDEProps[propertyKey] = {};
293
+ var properties = Reflect.getMetadata(IDE_PROPERTY_METADATA, target.constructor) || {};
294
+ properties[key] = _assign({
295
+ type: type,
296
+ isArray: isArray
297
+ }, options);
298
+ Reflect.defineMetadata(IDE_PROPERTY_METADATA, properties, target.constructor);
299
+ }
300
+
301
+ function getTypeDecoratorParams(returnTypeFuncOrOptions, maybeOptions) {
302
+ if (typeof returnTypeFuncOrOptions === 'function') {
303
+ return {
304
+ returnTypeFunc: returnTypeFuncOrOptions,
305
+ options: maybeOptions || {}
306
+ };
210
307
  }
211
308
 
212
- var propertyObj = target.constructor.IDEProps[propertyKey];
213
- return propertyObj;
309
+ return {
310
+ options: returnTypeFuncOrOptions || {}
311
+ };
214
312
  }
215
313
 
216
- function type(type) {
314
+ function Field(returnTypeFunction, maybeOptions) {
217
315
  return function (target, propertyKey) {
218
- var prop = getIDEPropsPropertyObj(target, propertyKey);
219
- prop.key = propertyKey;
220
- prop.type = type;
316
+ if (typeof propertyKey === 'symbol') {
317
+ throw new SymbolKeysNotSupportedError();
318
+ }
319
+
320
+ var _a = getTypeDecoratorParams(returnTypeFunction, maybeOptions),
321
+ options = _a.options,
322
+ returnTypeFunc = _a.returnTypeFunc;
323
+
324
+ defineTypes(target, propertyKey, options, returnTypeFunc);
221
325
  };
222
326
  }
223
327
 
@@ -386,11 +490,11 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
386
490
 
387
491
  Spine.componentName = 'Spine';
388
492
 
389
- __decorate([type('string')], Spine.prototype, "resource", void 0);
493
+ __decorate([Field(), __metadata("design:type", String)], Spine.prototype, "resource", void 0);
390
494
 
391
- __decorate([type('string')], Spine.prototype, "animationName", void 0);
495
+ __decorate([Field(), __metadata("design:type", String)], Spine.prototype, "animationName", void 0);
392
496
 
393
- __decorate([type('boolean')], Spine.prototype, "autoPlay", void 0);
497
+ __decorate([Field(), __metadata("design:type", Boolean)], Spine.prototype, "autoPlay", void 0);
394
498
 
395
499
  return Spine;
396
500
  }(eva_js.Component);
@@ -609,7 +713,7 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
609
713
  var _a, _b;
610
714
 
611
715
  return __awaiter(this, void 0, void 0, function () {
612
- var component, res, spineData, container, armature, tran;
716
+ var component, gameObjectId, asyncId, res, spineData, container, armature, tran;
613
717
 
614
718
  var _this = this;
615
719
 
@@ -618,14 +722,18 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
618
722
  case 0:
619
723
  component = changed.component;
620
724
  clearTimeout(component.addHandler);
725
+ gameObjectId = changed.gameObject.id;
726
+ asyncId = this.increaseAsyncId(gameObjectId);
621
727
  return [4, eva_js.resource.getResource(component.resource)];
622
728
 
623
729
  case 1:
624
730
  res = _c.sent();
731
+ if (!this.validateAsyncId(gameObjectId, asyncId)) return [2];
625
732
  return [4, getSpineData(res, this.pixiSpine)];
626
733
 
627
734
  case 2:
628
735
  spineData = _c.sent();
736
+ if (!this.validateAsyncId(gameObjectId, asyncId)) return [2];
629
737
 
630
738
  if (!spineData) {
631
739
  component.addHandler = setTimeout(function () {
@@ -718,6 +826,7 @@ var _EVA_IIFE_spineBase = function (exports, eva_js, pluginRenderer, pixi_js) {
718
826
  return __generator(this, function (_e) {
719
827
  switch (_e.label) {
720
828
  case 0:
829
+ this.increaseAsyncId(changed.gameObject.id);
721
830
  component = changed.component;
722
831
  clearTimeout(component.addHandler);
723
832
  armature = this.armatures[changed.gameObject.id];
@@ -1 +1 @@
1
- function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{};var _EVA_IIFE_spineBase=function(e,t,n,r){"use strict";var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function a(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((r=r.apply(e,t||[])).next())}))}function u(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function c(e){return function(t,n){var r=function(e,t){return e.constructor.IDEProps||(e.constructor.IDEProps={}),e.constructor.IDEProps[t]||(e.constructor.IDEProps[t]={}),e.constructor.IDEProps[t]}(t,n);r.key=n,r.type=e}}var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.animationName="",t.autoPlay=!0,t.waitExecuteInfos=[],t}return a(t,e),Object.defineProperty(t.prototype,"armature",{get:function(){return this._armature},set:function(e){var t,n;if(this._armature=e,e){this.autoPlay&&this.play(this.animationName);try{for(var r=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(this.waitExecuteInfos),o=r.next();!o.done;o=r.next()){var a=o.value;if(a.playType){var i=a.name,s=a.loop,u=a.track;this.play(i,s,u)}else this.stop(a.track)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}this.waitExecuteInfos=[]}},enumerable:!1,configurable:!0}),t.prototype.init=function(e){e&&_extends(this,e)},t.prototype.onDestroy=function(){this.destroied=!0},t.prototype.play=function(e,t,n){try{e&&(this.animationName=e),this.armature?(void 0===n&&(n=0),this.armature.state.setAnimation(n,this.animationName,t)):this.waitExecuteInfos.push({playType:!0,name:e,loop:null!=t?t:this.autoPlay,track:n})}catch(e){console.log(e)}},t.prototype.stop=function(e){this.armature?(void 0===e&&(e=0),this.armature.state.setEmptyAnimation(e,0)):this.waitExecuteInfos.push({playType:!1,track:e})},t.prototype.addAnimation=function(e,t,n,r){try{this.armature&&(void 0===r&&(r=0),this.armature.state.addAnimation(r,e,n,t))}catch(e){console.log(e)}},t.prototype.setMix=function(e,t,n){this.armature&&this.armature.stateData.setMix(e,t,n)},t.prototype.getAnim=function(e){void 0===e&&(e=0);try{if(this.armature)return this.armature.state.tracks[e].animation.name}catch(e){console.log(e)}},t.prototype.setDefaultMix=function(e){this.armature&&(this.armature.stateData.defaultMix=e)},t.prototype.setAttachment=function(e,t){this.armature&&this.armature.skeleton.setAttachment(e,t)},t.prototype.getBone=function(e){if(this.armature)return this.armature.skeleton.findBone(e)},t.componentName="Spine",i([c("string")],t.prototype,"resource",void 0),i([c("string")],t.prototype,"animationName",void 0),i([c("boolean")],t.prototype,"autoPlay",void 0),t}(t.Component),l={};function m(e){var t=e.image;return{tex:r.Texture.from(t),count:0}}var f={};function d(e,t,n,r){var o=null,a=function(e,t){var n=l[e];return n||(n=m(t),l[e]=n),n.tex}(t.image.src,t);new r.core.TextureAtlas(t.atlas,(function(e,t){t(a.baseTexture)}),(function(e){if(e){var a=new r.core.AtlasAttachmentLoader(e),i=new r.core.SkeletonJson(a);n&&(i.scale=n),o=i.readSkeletonData(t.ske)}}));var i={spineData:o,ref:0,imageSrc:t.image.src};return f[e]=i,i}function h(e,t){return s(this,void 0,void 0,(function(){var n;return u(this,(function(r){if(!(n=f[e.name]))if(e.complete)n=d(e.name,e.data,e.scale,t);else if(!n)return[2];return function(e,t){var n=l[e];n||(n=m(t),l[e]=n),n.count++,n.tex}(e.data.image.src,e.data),n.ref++,[2,n.spineData]}))}))}function y(e,t){var n=f[e];n&&(n.ref--,n.ref<=0&&(!function(e){e&&setTimeout((function(){var t=l[e];t&&(t.count--,t.count<=0&&(t.tex&&(t.tex.destroy(!0),t.tex=null),delete l[e]))}),100)}(t),delete f[e]))}var v=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.armatures={},t}return a(r,e),r.prototype.init=function(e){var r=this,o=e.pixiSpine;this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this),this.pixiSpine=o,this.game.canvas.addEventListener("webglcontextrestored",(function(){var e=r.game.gameObjects,n=[];for(var o in r.armatures)for(var a=+o,i=0;i<e.length;++i){var s=e[i];if(s.id===a){var u=s.getComponent(p);u&&(r.remove({type:t.OBSERVER_TYPE.REMOVE,gameObject:s,component:u,componentName:p.componentName}),n.push({type:t.OBSERVER_TYPE.ADD,gameObject:s,component:u,componentName:p.componentName}));break}}setTimeout((function(){n.forEach((function(e){r.add(e)}))}),1e3)}),!1)},r.prototype.update=function(t){for(var n in this.armatures)this.armatures[n].update(.001*t.deltaTime),this.armatures[n].updateTransform();e.prototype.update.call(this)},r.prototype.componentChanged=function(e){return s(this,void 0,void 0,(function(){return u(this,(function(n){if("Spine"===e.componentName)if(e.type===t.OBSERVER_TYPE.ADD)this.add(e);else if(e.type===t.OBSERVER_TYPE.CHANGE)switch(e.prop.prop[0]){case"resource":this.change(e)}else e.type===t.OBSERVER_TYPE.REMOVE&&this.remove(e);return[2]}))}))},r.prototype.add=function(e,n){var r,o;return s(this,void 0,void 0,(function(){var a,i,s,c,p,l=this;return u(this,(function(u){switch(u.label){case 0:return a=e.component,clearTimeout(a.addHandler),[4,t.resource.getResource(a.resource)];case 1:return[4,h(u.sent(),this.pixiSpine)];case 2:return(i=u.sent())?(this.remove(e),(s=null===(o=null===(r=this.renderSystem)||void 0===r?void 0:r.containerManager)||void 0===o?void 0:o.getContainer(e.gameObject.id))?(a.lastResource=a.resource,c=new this.pixiSpine.Spine(i),this.armatures[e.gameObject.id]=c,e.gameObject&&e.gameObject.transform&&(p=e.gameObject.transform,c.x=p.size.width*p.origin.x,c.y=p.size.height*p.origin.y),s.addChildAt(c,0),c.update(),c.updateTransform(),a.armature=c,a.emit("loaded",{resource:a.resource}),c.state.addListener({start:function(e,t){a.emit("start",{track:e,name:e.animation.name})},complete:function(e,t){a.emit("complete",{track:e,name:e.animation.name})},interrupt:function(e,t){a.emit("interrupt",{track:e,name:e.animation.name})},end:function(e,t){a.emit("end",{track:e,name:e.animation.name})},event:function(e,t){a.emit("event",e,t)}}),[2]):[2]):(a.addHandler=setTimeout((function(){a.destroied||(void 0===n&&(n=20),--n>0?l.add(e,n):console.log("retry exceed max times",a.resource))}),1e3),[2])}}))}))},r.prototype.change=function(e){this.remove(e),this.add(e)},r.prototype.remove=function(e){var n,r,o,a;return s(this,void 0,void 0,(function(){var i,s,c,p;return u(this,(function(u){switch(u.label){case 0:return i=e.component,clearTimeout(i.addHandler),s=this.armatures[e.gameObject.id],(c=null===(r=null===(n=this.renderSystem)||void 0===n?void 0:n.containerManager)||void 0===r?void 0:r.getContainer(e.gameObject.id))&&s&&c.removeChild(s),i.armature?(i.armature.destroy({children:!0}),[4,t.resource.getResource(i.lastResource)]):[3,2];case 1:y((p=u.sent()).name,null===(a=null===(o=p.data)||void 0===o?void 0:o.image)||void 0===a?void 0:a.src),u.label=2;case 2:return i.armature=null,delete this.armatures[e.gameObject.id],e.type,t.OBSERVER_TYPE.CHANGE,[2]}}))}))},r.systemName="SpineSystem",r=i([t.decorators.componentObserver({Spine:["resource"]})],r)}(n.Renderer);return t.resource.registerResourceType("SPINE"),e.Spine=p,e.SpineSystem=v,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,PIXI);window.EVA.plugin.spineBase=window.EVA.plugin.spineBase||_EVA_IIFE_spineBase;
1
+ function _extends(){return _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},_extends.apply(this,arguments)}window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{};var _EVA_IIFE_spineBase=function(t,e,n,r){"use strict";var o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)};function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var i=function(){return i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},i.apply(this,arguments)};function s(t,e,n,r){var o,a=arguments.length,i=a<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(i=(a<3?o(i):a>3?o(e,n,i):o(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i}function u(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function c(t,e,n,r){return new(n||(n=Promise))((function(o,a){function i(t){try{u(r.next(t))}catch(t){a(t)}}function s(t){try{u(r.throw(t))}catch(t){a(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,s)}u((r=r.apply(t,e||[])).next())}))}function p(t,e){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}var l=function(t){function e(){var e=this.constructor,n=t.call(this,"Symbol keys are not supported yet!")||this;return Object.setPrototypeOf(n,e.prototype),n}return a(e,t),e}(Error);!function(t){function e(){var e=this.constructor,n=t.call(this,"getProperties is not a function!")||this;return Object.setPrototypeOf(n,e.prototype),n}a(e,t)}(Error);var f="IDE_PROPERTY_METADATA";function m(t,e,n,r){var o=Reflect.getMetadata("design:type",t,e),a=o===Array,s=function(t){return t===String?"string":t===Number?"number":t===Boolean?"boolean":"unknown"}(o);if("unknown"!==s&&(o=s),r){var u=r();Array.isArray(u)?(a=!0,o=u[0]):o=u}var c=Reflect.getMetadata(f,t.constructor)||{};c[e]=i({type:o,isArray:a},n),Reflect.defineMetadata(f,c,t.constructor)}function d(t,e){return function(n,r){if("symbol"==typeof r)throw new l;var o=function(t,e){return"function"==typeof t?{returnTypeFunc:t,options:e||{}}:{options:t||{}}}(t,e);m(n,r,o.options,o.returnTypeFunc)}}var y=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.resource="",e.animationName="",e.autoPlay=!0,e.waitExecuteInfos=[],e}return a(e,t),Object.defineProperty(e.prototype,"armature",{get:function(){return this._armature},set:function(t){var e,n;if(this._armature=t,t){this.autoPlay&&this.play(this.animationName);try{for(var r=function(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(this.waitExecuteInfos),o=r.next();!o.done;o=r.next()){var a=o.value;if(a.playType){var i=a.name,s=a.loop,u=a.track;this.play(i,s,u)}else this.stop(a.track)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}this.waitExecuteInfos=[]}},enumerable:!1,configurable:!0}),e.prototype.init=function(t){t&&_extends(this,t)},e.prototype.onDestroy=function(){this.destroied=!0},e.prototype.play=function(t,e,n){try{t&&(this.animationName=t),this.armature?(void 0===n&&(n=0),this.armature.state.setAnimation(n,this.animationName,e)):this.waitExecuteInfos.push({playType:!0,name:t,loop:null!=e?e:this.autoPlay,track:n})}catch(t){console.log(t)}},e.prototype.stop=function(t){this.armature?(void 0===t&&(t=0),this.armature.state.setEmptyAnimation(t,0)):this.waitExecuteInfos.push({playType:!1,track:t})},e.prototype.addAnimation=function(t,e,n,r){try{this.armature&&(void 0===r&&(r=0),this.armature.state.addAnimation(r,t,n,e))}catch(t){console.log(t)}},e.prototype.setMix=function(t,e,n){this.armature&&this.armature.stateData.setMix(t,e,n)},e.prototype.getAnim=function(t){void 0===t&&(t=0);try{if(this.armature)return this.armature.state.tracks[t].animation.name}catch(t){console.log(t)}},e.prototype.setDefaultMix=function(t){this.armature&&(this.armature.stateData.defaultMix=t)},e.prototype.setAttachment=function(t,e){this.armature&&this.armature.skeleton.setAttachment(t,e)},e.prototype.getBone=function(t){if(this.armature)return this.armature.skeleton.findBone(t)},e.componentName="Spine",s([d(),u("design:type",String)],e.prototype,"resource",void 0),s([d(),u("design:type",String)],e.prototype,"animationName",void 0),s([d(),u("design:type",Boolean)],e.prototype,"autoPlay",void 0),e}(e.Component),h=y,v={};function g(t){var e=t.image;return{tex:r.Texture.from(e),count:0}}var b={};function E(t,e,n,r){var o=null,a=function(t,e){var n=v[t];return n||(n=g(e),v[t]=n),n.tex}(e.image.src,e);new r.core.TextureAtlas(e.atlas,(function(t,e){e(a.baseTexture)}),(function(t){if(t){var a=new r.core.AtlasAttachmentLoader(t),i=new r.core.SkeletonJson(a);n&&(i.scale=n),o=i.readSkeletonData(e.ske)}}));var i={spineData:o,ref:0,imageSrc:e.image.src};return b[t]=i,i}function w(t,e){return c(this,void 0,void 0,(function(){var n;return p(this,(function(r){if(!(n=b[t.name]))if(t.complete)n=E(t.name,t.data,t.scale,e);else if(!n)return[2];return function(t,e){var n=v[t];n||(n=g(e),v[t]=n),n.count++,n.tex}(t.data.image.src,t.data),n.ref++,[2,n.spineData]}))}))}function O(t,e){var n=b[t];n&&(n.ref--,n.ref<=0&&(!function(t){t&&setTimeout((function(){var e=v[t];e&&(e.count--,e.count<=0&&(e.tex&&(e.tex.destroy(!0),e.tex=null),delete v[t]))}),100)}(e),delete b[t]))}var x=function(t){function r(){var e=null!==t&&t.apply(this,arguments)||this;return e.armatures={},e}return a(r,t),r.prototype.init=function(t){var r=this,o=t.pixiSpine;this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this),this.pixiSpine=o,this.game.canvas.addEventListener("webglcontextrestored",(function(){var t=r.game.gameObjects,n=[];for(var o in r.armatures)for(var a=+o,i=0;i<t.length;++i){var s=t[i];if(s.id===a){var u=s.getComponent(h);u&&(r.remove({type:e.OBSERVER_TYPE.REMOVE,gameObject:s,component:u,componentName:h.componentName}),n.push({type:e.OBSERVER_TYPE.ADD,gameObject:s,component:u,componentName:h.componentName}));break}}setTimeout((function(){n.forEach((function(t){r.add(t)}))}),1e3)}),!1)},r.prototype.update=function(e){for(var n in this.armatures)this.armatures[n].update(.001*e.deltaTime),this.armatures[n].updateTransform();t.prototype.update.call(this)},r.prototype.componentChanged=function(t){return c(this,void 0,void 0,(function(){return p(this,(function(n){if("Spine"===t.componentName)if(t.type===e.OBSERVER_TYPE.ADD)this.add(t);else if(t.type===e.OBSERVER_TYPE.CHANGE){if("resource"===t.prop.prop[0])this.change(t)}else t.type===e.OBSERVER_TYPE.REMOVE&&this.remove(t);return[2]}))}))},r.prototype.add=function(t,n){var r,o;return c(this,void 0,void 0,(function(){var a,i,s,u,c,l,f,m,d=this;return p(this,(function(p){switch(p.label){case 0:return a=t.component,clearTimeout(a.addHandler),i=t.gameObject.id,s=this.increaseAsyncId(i),[4,e.resource.getResource(a.resource)];case 1:return u=p.sent(),this.validateAsyncId(i,s)?[4,w(u,this.pixiSpine)]:[2];case 2:return c=p.sent(),this.validateAsyncId(i,s)?c?(this.remove(t),(l=null===(o=null===(r=this.renderSystem)||void 0===r?void 0:r.containerManager)||void 0===o?void 0:o.getContainer(t.gameObject.id))?(a.lastResource=a.resource,f=new this.pixiSpine.Spine(c),this.armatures[t.gameObject.id]=f,t.gameObject&&t.gameObject.transform&&(m=t.gameObject.transform,f.x=m.size.width*m.origin.x,f.y=m.size.height*m.origin.y),l.addChildAt(f,0),f.update(),f.updateTransform(),a.armature=f,a.emit("loaded",{resource:a.resource}),f.state.addListener({start:function(t,e){a.emit("start",{track:t,name:t.animation.name})},complete:function(t,e){a.emit("complete",{track:t,name:t.animation.name})},interrupt:function(t,e){a.emit("interrupt",{track:t,name:t.animation.name})},end:function(t,e){a.emit("end",{track:t,name:t.animation.name})},event:function(t,e){a.emit("event",t,e)}}),[2]):[2]):(a.addHandler=setTimeout((function(){a.destroied||(void 0===n&&(n=20),--n>0?d.add(t,n):console.log("retry exceed max times",a.resource))}),1e3),[2]):[2]}}))}))},r.prototype.change=function(t){this.remove(t),this.add(t)},r.prototype.remove=function(t){var n,r,o,a;return c(this,void 0,void 0,(function(){var i,s,u,c;return p(this,(function(p){switch(p.label){case 0:return this.increaseAsyncId(t.gameObject.id),i=t.component,clearTimeout(i.addHandler),s=this.armatures[t.gameObject.id],(u=null===(r=null===(n=this.renderSystem)||void 0===n?void 0:n.containerManager)||void 0===r?void 0:r.getContainer(t.gameObject.id))&&s&&u.removeChild(s),i.armature?(i.armature.destroy({children:!0}),[4,e.resource.getResource(i.lastResource)]):[3,2];case 1:O((c=p.sent()).name,null===(a=null===(o=c.data)||void 0===o?void 0:o.image)||void 0===a?void 0:a.src),p.label=2;case 2:return i.armature=null,delete this.armatures[t.gameObject.id],t.type,e.OBSERVER_TYPE.CHANGE,[2]}}))}))},r.systemName="SpineSystem",r=s([e.decorators.componentObserver({Spine:["resource"]})],r)}(n.Renderer),S=x;return e.resource.registerResourceType("SPINE"),t.Spine=h,t.SpineSystem=S,Object.defineProperty(t,"__esModule",{value:!0}),t}({},EVA,EVA.plugin.renderer,PIXI);window.EVA.plugin.spineBase=window.EVA.plugin.spineBase||_EVA_IIFE_spineBase;
@@ -1,9 +1,9 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  import { Component, OBSERVER_TYPE, resource, decorators } from '@eva/eva.js/dist/miniprogram';
4
- import { __extends, __values, __decorate, __awaiter, __generator } from 'tslib';
4
+ import { __extends, __values, __decorate, __metadata, __awaiter, __generator } from 'tslib';
5
5
  import { RendererSystem, Renderer } from '@eva/plugin-renderer/dist/miniprogram';
6
- import { type } from '@eva/inspector-decorator';
6
+ import { Field } from '@eva/inspector-decorator';
7
7
  import { Texture } from '@eva/miniprogram-pixi';
8
8
 
9
9
  var Spine = function (_super) {
@@ -171,11 +171,11 @@ var Spine = function (_super) {
171
171
 
172
172
  Spine.componentName = 'Spine';
173
173
 
174
- __decorate([type('string')], Spine.prototype, "resource", void 0);
174
+ __decorate([Field(), __metadata("design:type", String)], Spine.prototype, "resource", void 0);
175
175
 
176
- __decorate([type('string')], Spine.prototype, "animationName", void 0);
176
+ __decorate([Field(), __metadata("design:type", String)], Spine.prototype, "animationName", void 0);
177
177
 
178
- __decorate([type('boolean')], Spine.prototype, "autoPlay", void 0);
178
+ __decorate([Field(), __metadata("design:type", Boolean)], Spine.prototype, "autoPlay", void 0);
179
179
 
180
180
  return Spine;
181
181
  }(Component);
@@ -394,7 +394,7 @@ var SpineSystem = function (_super) {
394
394
  var _a, _b;
395
395
 
396
396
  return __awaiter(this, void 0, void 0, function () {
397
- var component, res, spineData, container, armature, tran;
397
+ var component, gameObjectId, asyncId, res, spineData, container, armature, tran;
398
398
 
399
399
  var _this = this;
400
400
 
@@ -403,14 +403,18 @@ var SpineSystem = function (_super) {
403
403
  case 0:
404
404
  component = changed.component;
405
405
  clearTimeout(component.addHandler);
406
+ gameObjectId = changed.gameObject.id;
407
+ asyncId = this.increaseAsyncId(gameObjectId);
406
408
  return [4, resource.getResource(component.resource)];
407
409
 
408
410
  case 1:
409
411
  res = _c.sent();
412
+ if (!this.validateAsyncId(gameObjectId, asyncId)) return [2];
410
413
  return [4, getSpineData(res, this.pixiSpine)];
411
414
 
412
415
  case 2:
413
416
  spineData = _c.sent();
417
+ if (!this.validateAsyncId(gameObjectId, asyncId)) return [2];
414
418
 
415
419
  if (!spineData) {
416
420
  component.addHandler = setTimeout(function () {
@@ -503,6 +507,7 @@ var SpineSystem = function (_super) {
503
507
  return __generator(this, function (_e) {
504
508
  switch (_e.label) {
505
509
  case 0:
510
+ this.increaseAsyncId(changed.gameObject.id);
506
511
  component = changed.component;
507
512
  clearTimeout(component.addHandler);
508
513
  armature = this.armatures[changed.gameObject.id];
@@ -43,6 +43,10 @@ function __decorate(decorators, target, key, desc) {
43
43
  return c > 3 && r && Object.defineProperty(target, key, r), r;
44
44
  }
45
45
 
46
+ function __metadata(metadataKey, metadataValue) {
47
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
48
+ }
49
+
46
50
  function __awaiter(thisArg, _arguments, P, generator) {
47
51
  return new (P || (P = Promise))(function (resolve, reject) {
48
52
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -154,7 +158,7 @@ var Spine = (function (_super) {
154
158
  playType: true,
155
159
  name: name,
156
160
  loop: loop !== null && loop !== void 0 ? loop : this.autoPlay,
157
- track: track
161
+ track: track,
158
162
  });
159
163
  }
160
164
  else {
@@ -172,7 +176,7 @@ var Spine = (function (_super) {
172
176
  if (!this.armature) {
173
177
  this.waitExecuteInfos.push({
174
178
  playType: false,
175
- track: track
179
+ track: track,
176
180
  });
177
181
  return;
178
182
  }
@@ -235,13 +239,16 @@ var Spine = (function (_super) {
235
239
  };
236
240
  Spine.componentName = 'Spine';
237
241
  __decorate([
238
- inspectorDecorator.type('string')
242
+ inspectorDecorator.Field(),
243
+ __metadata("design:type", String)
239
244
  ], Spine.prototype, "resource", void 0);
240
245
  __decorate([
241
- inspectorDecorator.type('string')
246
+ inspectorDecorator.Field(),
247
+ __metadata("design:type", String)
242
248
  ], Spine.prototype, "animationName", void 0);
243
249
  __decorate([
244
- inspectorDecorator.type('boolean')
250
+ inspectorDecorator.Field(),
251
+ __metadata("design:type", Boolean)
245
252
  ], Spine.prototype, "autoPlay", void 0);
246
253
  return Spine;
247
254
  }(eva_js.Component));
@@ -421,19 +428,25 @@ var SpineSystem = (function (_super) {
421
428
  SpineSystem.prototype.add = function (changed, count) {
422
429
  var _a, _b;
423
430
  return __awaiter(this, void 0, void 0, function () {
424
- var component, res, spineData, container, armature, tran;
431
+ var component, gameObjectId, asyncId, res, spineData, container, armature, tran;
425
432
  var _this = this;
426
433
  return __generator(this, function (_c) {
427
434
  switch (_c.label) {
428
435
  case 0:
429
436
  component = changed.component;
430
437
  clearTimeout(component.addHandler);
438
+ gameObjectId = changed.gameObject.id;
439
+ asyncId = this.increaseAsyncId(gameObjectId);
431
440
  return [4, eva_js.resource.getResource(component.resource)];
432
441
  case 1:
433
442
  res = _c.sent();
443
+ if (!this.validateAsyncId(gameObjectId, asyncId))
444
+ return [2];
434
445
  return [4, getSpineData(res, this.pixiSpine)];
435
446
  case 2:
436
447
  spineData = _c.sent();
448
+ if (!this.validateAsyncId(gameObjectId, asyncId))
449
+ return [2];
437
450
  if (!spineData) {
438
451
  component.addHandler = setTimeout(function () {
439
452
  if (!component.destroied) {
@@ -502,6 +515,7 @@ var SpineSystem = (function (_super) {
502
515
  return __generator(this, function (_e) {
503
516
  switch (_e.label) {
504
517
  case 0:
518
+ this.increaseAsyncId(changed.gameObject.id);
505
519
  component = changed.component;
506
520
  clearTimeout(component.addHandler);
507
521
  armature = this.armatures[changed.gameObject.id];
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),t=require("@eva/plugin-renderer"),r=require("@eva/inspector-decorator"),n=require("pixi.js"),o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function a(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function i(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var u=e.length-1;u>=0;u--)(o=e[u])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function u(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function u(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){e.done?o(e.value):new r((function(t){t(e.value)})).then(i,u)}s((n=n.apply(e,t||[])).next())}))}function s(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.animationName="",t.autoPlay=!0,t.waitExecuteInfos=[],t}return a(t,e),Object.defineProperty(t.prototype,"armature",{get:function(){return this._armature},set:function(e){var t,r;if(this._armature=e,e){this.autoPlay&&this.play(this.animationName);try{for(var n=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}(this.waitExecuteInfos),o=n.next();!o.done;o=n.next()){var a=o.value;if(a.playType){var i=a.name,u=a.loop,s=a.track;this.play(i,u,s)}else this.stop(a.track)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}this.waitExecuteInfos=[]}},enumerable:!1,configurable:!0}),t.prototype.init=function(e){e&&Object.assign(this,e)},t.prototype.onDestroy=function(){this.destroied=!0},t.prototype.play=function(e,t,r){try{e&&(this.animationName=e),this.armature?(void 0===r&&(r=0),this.armature.state.setAnimation(r,this.animationName,t)):this.waitExecuteInfos.push({playType:!0,name:e,loop:null!=t?t:this.autoPlay,track:r})}catch(e){console.log(e)}},t.prototype.stop=function(e){this.armature?(void 0===e&&(e=0),this.armature.state.setEmptyAnimation(e,0)):this.waitExecuteInfos.push({playType:!1,track:e})},t.prototype.addAnimation=function(e,t,r,n){try{this.armature&&(void 0===n&&(n=0),this.armature.state.addAnimation(n,e,r,t))}catch(e){console.log(e)}},t.prototype.setMix=function(e,t,r){this.armature&&this.armature.stateData.setMix(e,t,r)},t.prototype.getAnim=function(e){void 0===e&&(e=0);try{if(this.armature)return this.armature.state.tracks[e].animation.name}catch(e){console.log(e)}},t.prototype.setDefaultMix=function(e){this.armature&&(this.armature.stateData.defaultMix=e)},t.prototype.setAttachment=function(e,t){this.armature&&this.armature.skeleton.setAttachment(e,t)},t.prototype.getBone=function(e){if(this.armature)return this.armature.skeleton.findBone(e)},t.componentName="Spine",i([r.type("string")],t.prototype,"resource",void 0),i([r.type("string")],t.prototype,"animationName",void 0),i([r.type("boolean")],t.prototype,"autoPlay",void 0),t}(e.Component),p={};function l(e){var t=e.image;return{tex:n.Texture.from(t),count:0}}var m={};function f(e,t,r,n){var o=null,a=function(e,t){var r=p[e];return r||(r=l(t),p[e]=r),r.tex}(t.image.src,t);new n.core.TextureAtlas(t.atlas,(function(e,t){t(a.baseTexture)}),(function(e){if(e){var a=new n.core.AtlasAttachmentLoader(e),i=new n.core.SkeletonJson(a);r&&(i.scale=r),o=i.readSkeletonData(t.ske)}}));var i={spineData:o,ref:0,imageSrc:t.image.src};return m[e]=i,i}function d(e,t){return u(this,void 0,void 0,(function(){var r;return s(this,(function(n){if(!(r=m[e.name]))if(e.complete)r=f(e.name,e.data,e.scale,t);else if(!r)return[2];return function(e,t){var r=p[e];r||(r=l(t),p[e]=r),r.count++,r.tex}(e.data.image.src,e.data),r.ref++,[2,r.spineData]}))}))}function h(e,t){var r=m[e];r&&(r.ref--,r.ref<=0&&(!function(e){e&&setTimeout((function(){var t=p[e];t&&(t.count--,t.count<=0&&(t.tex&&(t.tex.destroy(!0),t.tex=null),delete p[e]))}),100)}(t),delete m[e]))}var y=function(r){function n(){var e=null!==r&&r.apply(this,arguments)||this;return e.armatures={},e}return a(n,r),n.prototype.init=function(r){var n=this,o=r.pixiSpine;this.renderSystem=this.game.getSystem(t.RendererSystem),this.renderSystem.rendererManager.register(this),this.pixiSpine=o,this.game.canvas.addEventListener("webglcontextrestored",(function(){var t=n.game.gameObjects,r=[];for(var o in n.armatures)for(var a=+o,i=0;i<t.length;++i){var u=t[i];if(u.id===a){var s=u.getComponent(c);s&&(n.remove({type:e.OBSERVER_TYPE.REMOVE,gameObject:u,component:s,componentName:c.componentName}),r.push({type:e.OBSERVER_TYPE.ADD,gameObject:u,component:s,componentName:c.componentName}));break}}setTimeout((function(){r.forEach((function(e){n.add(e)}))}),1e3)}),!1)},n.prototype.update=function(e){for(var t in this.armatures)this.armatures[t].update(.001*e.deltaTime),this.armatures[t].updateTransform();r.prototype.update.call(this)},n.prototype.componentChanged=function(t){return u(this,void 0,void 0,(function(){return s(this,(function(r){if("Spine"===t.componentName)if(t.type===e.OBSERVER_TYPE.ADD)this.add(t);else if(t.type===e.OBSERVER_TYPE.CHANGE)switch(t.prop.prop[0]){case"resource":this.change(t)}else t.type===e.OBSERVER_TYPE.REMOVE&&this.remove(t);return[2]}))}))},n.prototype.add=function(t,r){var n,o;return u(this,void 0,void 0,(function(){var a,i,u,c,p,l=this;return s(this,(function(s){switch(s.label){case 0:return a=t.component,clearTimeout(a.addHandler),[4,e.resource.getResource(a.resource)];case 1:return[4,d(s.sent(),this.pixiSpine)];case 2:return(i=s.sent())?(this.remove(t),(u=null===(o=null===(n=this.renderSystem)||void 0===n?void 0:n.containerManager)||void 0===o?void 0:o.getContainer(t.gameObject.id))?(a.lastResource=a.resource,c=new this.pixiSpine.Spine(i),this.armatures[t.gameObject.id]=c,t.gameObject&&t.gameObject.transform&&(p=t.gameObject.transform,c.x=p.size.width*p.origin.x,c.y=p.size.height*p.origin.y),u.addChildAt(c,0),c.update(),c.updateTransform(),a.armature=c,a.emit("loaded",{resource:a.resource}),c.state.addListener({start:function(e,t){a.emit("start",{track:e,name:e.animation.name})},complete:function(e,t){a.emit("complete",{track:e,name:e.animation.name})},interrupt:function(e,t){a.emit("interrupt",{track:e,name:e.animation.name})},end:function(e,t){a.emit("end",{track:e,name:e.animation.name})},event:function(e,t){a.emit("event",e,t)}}),[2]):[2]):(a.addHandler=setTimeout((function(){a.destroied||(void 0===r&&(r=20),--r>0?l.add(t,r):console.log("retry exceed max times",a.resource))}),1e3),[2])}}))}))},n.prototype.change=function(e){this.remove(e),this.add(e)},n.prototype.remove=function(t){var r,n,o,a;return u(this,void 0,void 0,(function(){var i,u,c,p;return s(this,(function(s){switch(s.label){case 0:return i=t.component,clearTimeout(i.addHandler),u=this.armatures[t.gameObject.id],(c=null===(n=null===(r=this.renderSystem)||void 0===r?void 0:r.containerManager)||void 0===n?void 0:n.getContainer(t.gameObject.id))&&u&&c.removeChild(u),i.armature?(i.armature.destroy({children:!0}),[4,e.resource.getResource(i.lastResource)]):[3,2];case 1:h((p=s.sent()).name,null===(a=null===(o=p.data)||void 0===o?void 0:o.image)||void 0===a?void 0:a.src),s.label=2;case 2:return i.armature=null,delete this.armatures[t.gameObject.id],t.type,e.OBSERVER_TYPE.CHANGE,[2]}}))}))},n.systemName="SpineSystem",n=i([e.decorators.componentObserver({Spine:["resource"]})],n)}(t.Renderer);e.resource.registerResourceType("SPINE"),exports.Spine=c,exports.SpineSystem=y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),t=require("@eva/plugin-renderer"),n=require("@eva/inspector-decorator"),r=require("pixi.js"),a=function(e,t){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},a(e,t)};function o(e,t){function n(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){e.done?a(e.value):new n((function(t){t(e.value)})).then(i,s)}u((r=r.apply(e,t||[])).next())}))}function c(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}var l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.animationName="",t.autoPlay=!0,t.waitExecuteInfos=[],t}return o(t,e),Object.defineProperty(t.prototype,"armature",{get:function(){return this._armature},set:function(e){var t,n;if(this._armature=e,e){this.autoPlay&&this.play(this.animationName);try{for(var r=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}(this.waitExecuteInfos),a=r.next();!a.done;a=r.next()){var o=a.value;if(o.playType){var i=o.name,s=o.loop,u=o.track;this.play(i,s,u)}else this.stop(o.track)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}this.waitExecuteInfos=[]}},enumerable:!1,configurable:!0}),t.prototype.init=function(e){e&&Object.assign(this,e)},t.prototype.onDestroy=function(){this.destroied=!0},t.prototype.play=function(e,t,n){try{e&&(this.animationName=e),this.armature?(void 0===n&&(n=0),this.armature.state.setAnimation(n,this.animationName,t)):this.waitExecuteInfos.push({playType:!0,name:e,loop:null!=t?t:this.autoPlay,track:n})}catch(e){console.log(e)}},t.prototype.stop=function(e){this.armature?(void 0===e&&(e=0),this.armature.state.setEmptyAnimation(e,0)):this.waitExecuteInfos.push({playType:!1,track:e})},t.prototype.addAnimation=function(e,t,n,r){try{this.armature&&(void 0===r&&(r=0),this.armature.state.addAnimation(r,e,n,t))}catch(e){console.log(e)}},t.prototype.setMix=function(e,t,n){this.armature&&this.armature.stateData.setMix(e,t,n)},t.prototype.getAnim=function(e){void 0===e&&(e=0);try{if(this.armature)return this.armature.state.tracks[e].animation.name}catch(e){console.log(e)}},t.prototype.setDefaultMix=function(e){this.armature&&(this.armature.stateData.defaultMix=e)},t.prototype.setAttachment=function(e,t){this.armature&&this.armature.skeleton.setAttachment(e,t)},t.prototype.getBone=function(e){if(this.armature)return this.armature.skeleton.findBone(e)},t.componentName="Spine",i([n.Field(),s("design:type",String)],t.prototype,"resource",void 0),i([n.Field(),s("design:type",String)],t.prototype,"animationName",void 0),i([n.Field(),s("design:type",Boolean)],t.prototype,"autoPlay",void 0),t}(e.Component),p={};function m(e){var t=e.image;return{tex:r.Texture.from(t),count:0}}var f={};function d(e,t,n,r){var a=null,o=function(e,t){var n=p[e];return n||(n=m(t),p[e]=n),n.tex}(t.image.src,t);new r.core.TextureAtlas(t.atlas,(function(e,t){t(o.baseTexture)}),(function(e){if(e){var o=new r.core.AtlasAttachmentLoader(e),i=new r.core.SkeletonJson(o);n&&(i.scale=n),a=i.readSkeletonData(t.ske)}}));var i={spineData:a,ref:0,imageSrc:t.image.src};return f[e]=i,i}function h(e,t){return u(this,void 0,void 0,(function(){var n;return c(this,(function(r){if(!(n=f[e.name]))if(e.complete)n=d(e.name,e.data,e.scale,t);else if(!n)return[2];return function(e,t){var n=p[e];n||(n=m(t),p[e]=n),n.count++,n.tex}(e.data.image.src,e.data),n.ref++,[2,n.spineData]}))}))}function y(e,t){var n=f[e];n&&(n.ref--,n.ref<=0&&(!function(e){e&&setTimeout((function(){var t=p[e];t&&(t.count--,t.count<=0&&(t.tex&&(t.tex.destroy(!0),t.tex=null),delete p[e]))}),100)}(t),delete f[e]))}var v=function(n){function r(){var e=null!==n&&n.apply(this,arguments)||this;return e.armatures={},e}return o(r,n),r.prototype.init=function(n){var r=this,a=n.pixiSpine;this.renderSystem=this.game.getSystem(t.RendererSystem),this.renderSystem.rendererManager.register(this),this.pixiSpine=a,this.game.canvas.addEventListener("webglcontextrestored",(function(){var t=r.game.gameObjects,n=[];for(var a in r.armatures)for(var o=+a,i=0;i<t.length;++i){var s=t[i];if(s.id===o){var u=s.getComponent(l);u&&(r.remove({type:e.OBSERVER_TYPE.REMOVE,gameObject:s,component:u,componentName:l.componentName}),n.push({type:e.OBSERVER_TYPE.ADD,gameObject:s,component:u,componentName:l.componentName}));break}}setTimeout((function(){n.forEach((function(e){r.add(e)}))}),1e3)}),!1)},r.prototype.update=function(e){for(var t in this.armatures)this.armatures[t].update(.001*e.deltaTime),this.armatures[t].updateTransform();n.prototype.update.call(this)},r.prototype.componentChanged=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(n){if("Spine"===t.componentName)if(t.type===e.OBSERVER_TYPE.ADD)this.add(t);else if(t.type===e.OBSERVER_TYPE.CHANGE){if("resource"===t.prop.prop[0])this.change(t)}else t.type===e.OBSERVER_TYPE.REMOVE&&this.remove(t);return[2]}))}))},r.prototype.add=function(t,n){var r,a;return u(this,void 0,void 0,(function(){var o,i,s,u,l,p,m,f,d=this;return c(this,(function(c){switch(c.label){case 0:return o=t.component,clearTimeout(o.addHandler),i=t.gameObject.id,s=this.increaseAsyncId(i),[4,e.resource.getResource(o.resource)];case 1:return u=c.sent(),this.validateAsyncId(i,s)?[4,h(u,this.pixiSpine)]:[2];case 2:return l=c.sent(),this.validateAsyncId(i,s)?l?(this.remove(t),(p=null===(a=null===(r=this.renderSystem)||void 0===r?void 0:r.containerManager)||void 0===a?void 0:a.getContainer(t.gameObject.id))?(o.lastResource=o.resource,m=new this.pixiSpine.Spine(l),this.armatures[t.gameObject.id]=m,t.gameObject&&t.gameObject.transform&&(f=t.gameObject.transform,m.x=f.size.width*f.origin.x,m.y=f.size.height*f.origin.y),p.addChildAt(m,0),m.update(),m.updateTransform(),o.armature=m,o.emit("loaded",{resource:o.resource}),m.state.addListener({start:function(e,t){o.emit("start",{track:e,name:e.animation.name})},complete:function(e,t){o.emit("complete",{track:e,name:e.animation.name})},interrupt:function(e,t){o.emit("interrupt",{track:e,name:e.animation.name})},end:function(e,t){o.emit("end",{track:e,name:e.animation.name})},event:function(e,t){o.emit("event",e,t)}}),[2]):[2]):(o.addHandler=setTimeout((function(){o.destroied||(void 0===n&&(n=20),--n>0?d.add(t,n):console.log("retry exceed max times",o.resource))}),1e3),[2]):[2]}}))}))},r.prototype.change=function(e){this.remove(e),this.add(e)},r.prototype.remove=function(t){var n,r,a,o;return u(this,void 0,void 0,(function(){var i,s,u,l;return c(this,(function(c){switch(c.label){case 0:return this.increaseAsyncId(t.gameObject.id),i=t.component,clearTimeout(i.addHandler),s=this.armatures[t.gameObject.id],(u=null===(r=null===(n=this.renderSystem)||void 0===n?void 0:n.containerManager)||void 0===r?void 0:r.getContainer(t.gameObject.id))&&s&&u.removeChild(s),i.armature?(i.armature.destroy({children:!0}),[4,e.resource.getResource(i.lastResource)]):[3,2];case 1:y((l=c.sent()).name,null===(o=null===(a=l.data)||void 0===a?void 0:a.image)||void 0===o?void 0:o.src),c.label=2;case 2:return i.armature=null,delete this.armatures[t.gameObject.id],t.type,e.OBSERVER_TYPE.CHANGE,[2]}}))}))},r.systemName="SpineSystem",r=i([e.decorators.componentObserver({Spine:["resource"]})],r)}(t.Renderer);e.resource.registerResourceType("SPINE"),exports.Spine=l,exports.SpineSystem=v;
@@ -1,6 +1,6 @@
1
1
  import { Component, OBSERVER_TYPE, decorators, resource } from '@eva/eva.js';
2
2
  import { RendererSystem, Renderer } from '@eva/plugin-renderer';
3
- import { type } from '@eva/inspector-decorator';
3
+ import { Field } from '@eva/inspector-decorator';
4
4
  import { Texture } from 'pixi.js';
5
5
 
6
6
  /*! *****************************************************************************
@@ -39,6 +39,10 @@ function __decorate(decorators, target, key, desc) {
39
39
  return c > 3 && r && Object.defineProperty(target, key, r), r;
40
40
  }
41
41
 
42
+ function __metadata(metadataKey, metadataValue) {
43
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
44
+ }
45
+
42
46
  function __awaiter(thisArg, _arguments, P, generator) {
43
47
  return new (P || (P = Promise))(function (resolve, reject) {
44
48
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -150,7 +154,7 @@ var Spine = (function (_super) {
150
154
  playType: true,
151
155
  name: name,
152
156
  loop: loop !== null && loop !== void 0 ? loop : this.autoPlay,
153
- track: track
157
+ track: track,
154
158
  });
155
159
  }
156
160
  else {
@@ -168,7 +172,7 @@ var Spine = (function (_super) {
168
172
  if (!this.armature) {
169
173
  this.waitExecuteInfos.push({
170
174
  playType: false,
171
- track: track
175
+ track: track,
172
176
  });
173
177
  return;
174
178
  }
@@ -231,13 +235,16 @@ var Spine = (function (_super) {
231
235
  };
232
236
  Spine.componentName = 'Spine';
233
237
  __decorate([
234
- type('string')
238
+ Field(),
239
+ __metadata("design:type", String)
235
240
  ], Spine.prototype, "resource", void 0);
236
241
  __decorate([
237
- type('string')
242
+ Field(),
243
+ __metadata("design:type", String)
238
244
  ], Spine.prototype, "animationName", void 0);
239
245
  __decorate([
240
- type('boolean')
246
+ Field(),
247
+ __metadata("design:type", Boolean)
241
248
  ], Spine.prototype, "autoPlay", void 0);
242
249
  return Spine;
243
250
  }(Component));
@@ -417,19 +424,25 @@ var SpineSystem = (function (_super) {
417
424
  SpineSystem.prototype.add = function (changed, count) {
418
425
  var _a, _b;
419
426
  return __awaiter(this, void 0, void 0, function () {
420
- var component, res, spineData, container, armature, tran;
427
+ var component, gameObjectId, asyncId, res, spineData, container, armature, tran;
421
428
  var _this = this;
422
429
  return __generator(this, function (_c) {
423
430
  switch (_c.label) {
424
431
  case 0:
425
432
  component = changed.component;
426
433
  clearTimeout(component.addHandler);
434
+ gameObjectId = changed.gameObject.id;
435
+ asyncId = this.increaseAsyncId(gameObjectId);
427
436
  return [4, resource.getResource(component.resource)];
428
437
  case 1:
429
438
  res = _c.sent();
439
+ if (!this.validateAsyncId(gameObjectId, asyncId))
440
+ return [2];
430
441
  return [4, getSpineData(res, this.pixiSpine)];
431
442
  case 2:
432
443
  spineData = _c.sent();
444
+ if (!this.validateAsyncId(gameObjectId, asyncId))
445
+ return [2];
433
446
  if (!spineData) {
434
447
  component.addHandler = setTimeout(function () {
435
448
  if (!component.destroied) {
@@ -498,6 +511,7 @@ var SpineSystem = (function (_super) {
498
511
  return __generator(this, function (_e) {
499
512
  switch (_e.label) {
500
513
  case 0:
514
+ this.increaseAsyncId(changed.gameObject.id);
501
515
  component = changed.component;
502
516
  clearTimeout(component.addHandler);
503
517
  armature = this.armatures[changed.gameObject.id];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/spine-base",
3
- "version": "1.2.6",
3
+ "version": "1.2.7-editor.2",
4
4
  "description": "@eva/spine-base",
5
5
  "main": "index.js",
6
6
  "module": "dist/spine-base.esm.js",
@@ -18,9 +18,9 @@
18
18
  "license": "MIT",
19
19
  "homepage": "https://eva.js.org",
20
20
  "dependencies": {
21
- "@eva/eva.js": "1.2.6",
22
- "@eva/plugin-renderer": "1.2.6",
23
- "@eva/inspector-decorator": "^0.0.5",
21
+ "@eva/eva.js": "1.2.7-editor.2",
22
+ "@eva/plugin-renderer": "1.2.7-editor.2",
23
+ "@eva/inspector-decorator": "0.1.0-alpha.1",
24
24
  "pixi.js": "^4.8.9"
25
25
  }
26
26
  }