@eva/plugin-renderer-sprite-animation 1.2.2-alpha.0 → 1.2.2-mini.3

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.
@@ -1,10 +1,10 @@
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
- this.EVA = this.EVA || {};
4
- this.EVA.plugin = this.EVA.plugin || {};
5
- this.EVA.plugin.renderer = this.EVA.plugin.renderer || {};
3
+ window.EVA = window.EVA || {};
4
+ window.EVA.plugin = window.EVA.plugin || {};
5
+ window.EVA.plugin.renderer = window.EVA.plugin.renderer || {};
6
6
 
7
- this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRenderer, rendererAdapter, pixi_js) {
7
+ var _EVA_IIFE_spriteAnimation = function (exports, eva_js, pluginRenderer, rendererAdapter, pixi_js) {
8
8
  'use strict';
9
9
 
10
10
  var _extendStatics = function extendStatics(d, b) {
@@ -238,6 +238,7 @@ this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRend
238
238
  _this.resource = '';
239
239
  _this.autoPlay = true;
240
240
  _this.speed = 100;
241
+ _this.forwards = false;
241
242
  _this.waitPlay = false;
242
243
  _this.waitStop = false;
243
244
  _this.times = Infinity;
@@ -251,9 +252,13 @@ this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRend
251
252
  obj && _extends(this, obj);
252
253
  this.on('loop', function () {
253
254
  if (++_this.count >= _this.times) {
254
- _this.animate.stop();
255
+ if (_this.forwards) {
256
+ _this.animate.animatedSprite.loop = false;
257
+ } else {
258
+ _this.animate.stop();
255
259
 
256
- _this.emit('complete');
260
+ _this.emit('complete');
261
+ }
257
262
  }
258
263
  });
259
264
  };
@@ -272,6 +277,10 @@ this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRend
272
277
  if (!this.animate) {
273
278
  this.waitPlay = true;
274
279
  } else {
280
+ if (times === 1 && this.forwards) {
281
+ this.animate.animatedSprite.loop = false;
282
+ }
283
+
275
284
  this.animate.play();
276
285
  this.count = 0;
277
286
  }
@@ -314,6 +323,24 @@ this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRend
314
323
  this.animate.gotoAndStop(frameNumber);
315
324
  };
316
325
 
326
+ Object.defineProperty(SpriteAnimation.prototype, "currentFrame", {
327
+ get: function get() {
328
+ var _a, _b;
329
+
330
+ return (_b = (_a = this.animate) === null || _a === void 0 ? void 0 : _a.animatedSprite) === null || _b === void 0 ? void 0 : _b.currentFrame;
331
+ },
332
+ enumerable: false,
333
+ configurable: true
334
+ });
335
+ Object.defineProperty(SpriteAnimation.prototype, "totalFrames", {
336
+ get: function get() {
337
+ var _a, _b;
338
+
339
+ return (_b = (_a = this.animate) === null || _a === void 0 ? void 0 : _a.animatedSprite) === null || _b === void 0 ? void 0 : _b.totalFrames;
340
+ },
341
+ enumerable: false,
342
+ configurable: true
343
+ });
317
344
  SpriteAnimation.componentName = 'SpriteAnimation';
318
345
 
319
346
  __decorate([type('string')], SpriteAnimation.prototype, "resource", void 0);
@@ -322,6 +349,8 @@ this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRend
322
349
 
323
350
  __decorate([type('number'), step(10)], SpriteAnimation.prototype, "speed", void 0);
324
351
 
352
+ __decorate([type('boolean')], SpriteAnimation.prototype, "forwards", void 0);
353
+
325
354
  return SpriteAnimation;
326
355
  }(eva_js.Component);
327
356
 
@@ -573,3 +602,5 @@ this.EVA.plugin.renderer.spriteAnimation = function (exports, eva_js, pluginRend
573
602
  });
574
603
  return exports;
575
604
  }({}, EVA, EVA.plugin.renderer, EVA.rendererAdapter, PIXI);
605
+
606
+ window.EVA.plugin.renderer.spriteAnimation = window.EVA.plugin.renderer.spriteAnimation || _EVA_IIFE_spriteAnimation;
@@ -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)}this.EVA=this.EVA||{},this.EVA.plugin=this.EVA.plugin||{},this.EVA.plugin.renderer=this.EVA.plugin.renderer||{},this.EVA.plugin.renderer.spriteAnimation=function(e,t,n,r,o){"use strict";var i=function(e,t){return(i=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}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function s(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function c(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))}function p(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}function u(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.")}function l(e,t){return e.constructor.IDEProps||(e.constructor.IDEProps={}),e.constructor.IDEProps[t]||(e.constructor.IDEProps[t]={}),e.constructor.IDEProps[t]}function f(e){return function(t,n){var r=l(t,n);r.key=n,r.type=e}}function m(e){return function(t,n){l(t,n).step=e}}var h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.autoPlay=!0,t.speed=100,t.waitPlay=!1,t.waitStop=!1,t.times=1/0,t.count=0,t}return a(t,e),t.prototype.init=function(e){var t=this;e&&_extends(this,e),this.on("loop",(function(){++t.count>=t.times&&(t.animate.stop(),t.emit("complete"))}))},t.prototype.play=function(e){void 0===e&&(e=1/0),0!==e&&(this.times=e,this.animate?(this.animate.play(),this.count=0):this.waitPlay=!0)},t.prototype.stop=function(){this.animate?this.animate.stop():this.waitStop=!0},Object.defineProperty(t.prototype,"animate",{get:function(){return this._animate},set:function(e){this._animate=e,this.waitPlay&&(this.waitPlay=!1,this.play(this.times)),this.waitStop&&(this.waitStop=!1,this.stop())},enumerable:!1,configurable:!0}),t.prototype.gotoAndPlay=function(e){this.animate.gotoAndPlay(e)},t.prototype.gotoAndStop=function(e){this.animate.gotoAndStop(e)},t.componentName="SpriteAnimation",s([f("string")],t.prototype,"resource",void 0),s([f("boolean")],t.prototype,"autoPlay",void 0),s([f("number"),m(10)],t.prototype,"speed",void 0),t}(t.Component),d="_s|r|c_";t.resource.registerInstance(t.RESOURCE_TYPE.SPRITE_ANIMATION,(function(e){var t=e.name,n=e.data;return new Promise((function(e){var r,i,a=n.json,s=o.BaseTexture.from(n.image),c=a.frames||{},p=a.animations||{},l={};for(var f in c){l[t+d+f]=c[f]}for(var f in p){var m=[];if(p[f]&&p[f].length>=0)try{for(var h=(r=void 0,u(p[f])),y=h.next();!y.done;y=h.next()){var v=y.value,g=t+d+v;m.push(g)}}catch(e){r={error:e}}finally{try{y&&!y.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}p[f]=m}a.frames=l;var b=new o.Spritesheet(s,a);b.parse((function(){var t=b.textures,n=[];for(var r in t)n.push(t[r]);e(n)}))}))})),t.resource.registerDestroy(t.RESOURCE_TYPE.SPRITE_ANIMATION,(function(e){var t,n,r=e.instance;if(r)try{for(var o=u(r),i=o.next();!i.done;i=o.next()){i.value.destroy(!0)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}}));var y=function(e){function o(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="SpriteAnimation",t.animates={},t.autoPlay={},t}return a(o,e),o.prototype.init=function(){this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this)},o.prototype.rendererUpdate=function(e){var t=e.transform.size,n=t.width,r=t.height;this.animates[e.id]&&(this.animates[e.id].animatedSprite.width=n,this.animates[e.id].animatedSprite.height=r)},o.prototype.componentChanged=function(e){return c(this,void 0,void 0,(function(){var n,r,o;return p(this,(function(i){switch(i.label){case 0:return"SpriteAnimation"!==e.componentName?[3,7]:(n=e.component,this.autoPlay[e.gameObject.id]=n.autoPlay,e.type!==t.OBSERVER_TYPE.ADD?[3,2]:[4,t.resource.getResource(n.resource)]);case 1:return(r=i.sent().instance)||console.error("GameObject:"+e.gameObject.name+"'s Img resource load error"),this.add({frames:r,id:e.gameObject.id,component:n}),[3,7];case 2:return e.type!==t.OBSERVER_TYPE.CHANGE?[3,6]:e.prop&&"speed"===e.prop.prop[0]?(this.animates[e.gameObject.id].speed=1e3/60/n.speed,[3,5]):[3,3];case 3:return[4,t.resource.getResource(n.resource)];case 4:(o=i.sent().instance)||console.error("GameObject:"+e.gameObject.name+"'s Img resource load error"),this.change({frames:o,id:e.gameObject.id,component:n}),i.label=5;case 5:return[3,7];case 6:e.type===t.OBSERVER_TYPE.REMOVE&&this.remove(e.gameObject.id),i.label=7;case 7:return[2]}}))}))},o.prototype.add=function(e){var t=e.frames,n=e.id,o=e.component,i=new r.SpriteAnimation({frames:t});this.animates[n]=i,this.containerManager.getContainer(n).addChildAt(i.animatedSprite,0),i.animatedSprite.onComplete=function(){o.emit("complete")},i.animatedSprite.onFrameChange=function(){o.emit("frameChange")},i.animatedSprite.onLoop=function(){o.emit("loop")},o.animate=this.animates[n],this.animates[n].speed=1e3/60/o.speed,this.autoPlay[n]&&i.animatedSprite.play()},o.prototype.change=function(e){var t=e.frames,n=e.id,r=e.component;this.remove(n,!0),this.add({frames:t,id:n,component:r})},o.prototype.remove=function(e,t){var n=this.animates[e];this.autoPlay[e]=n.animatedSprite.playing,this.containerManager.getContainer(e).removeChild(n.animatedSprite),n.animatedSprite.destroy({children:!0}),delete this.animates[e],t||delete this.autoPlay[e]},o.systemName="SpriteAnimation",o=s([t.decorators.componentObserver({SpriteAnimation:["speed","resource"]})],o)}(n.Renderer);return e.SpriteAnimation=h,e.SpriteAnimationSystem=y,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,EVA.rendererAdapter,PIXI);
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)}var _EVA_IIFE_spriteAnimation=function(e,t,n,r,o){"use strict";var i=function(e,t){return(i=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}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function s(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function c(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))}function p(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}function u(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.")}function l(e,t){return e.constructor.IDEProps||(e.constructor.IDEProps={}),e.constructor.IDEProps[t]||(e.constructor.IDEProps[t]={}),e.constructor.IDEProps[t]}function m(e){return function(t,n){var r=l(t,n);r.key=n,r.type=e}}function f(e){return function(t,n){l(t,n).step=e}}var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.autoPlay=!0,t.speed=100,t.forwards=!1,t.waitPlay=!1,t.waitStop=!1,t.times=1/0,t.count=0,t}return a(t,e),t.prototype.init=function(e){var t=this;e&&_extends(this,e),this.on("loop",(function(){++t.count>=t.times&&(t.forwards?t.animate.animatedSprite.loop=!1:(t.animate.stop(),t.emit("complete")))}))},t.prototype.play=function(e){void 0===e&&(e=1/0),0!==e&&(this.times=e,this.animate?(1===e&&this.forwards&&(this.animate.animatedSprite.loop=!1),this.animate.play(),this.count=0):this.waitPlay=!0)},t.prototype.stop=function(){this.animate?this.animate.stop():this.waitStop=!0},Object.defineProperty(t.prototype,"animate",{get:function(){return this._animate},set:function(e){this._animate=e,this.waitPlay&&(this.waitPlay=!1,this.play(this.times)),this.waitStop&&(this.waitStop=!1,this.stop())},enumerable:!1,configurable:!0}),t.prototype.gotoAndPlay=function(e){this.animate.gotoAndPlay(e)},t.prototype.gotoAndStop=function(e){this.animate.gotoAndStop(e)},Object.defineProperty(t.prototype,"currentFrame",{get:function(){var e,t;return null===(t=null===(e=this.animate)||void 0===e?void 0:e.animatedSprite)||void 0===t?void 0:t.currentFrame},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"totalFrames",{get:function(){var e,t;return null===(t=null===(e=this.animate)||void 0===e?void 0:e.animatedSprite)||void 0===t?void 0:t.totalFrames},enumerable:!1,configurable:!0}),t.componentName="SpriteAnimation",s([m("string")],t.prototype,"resource",void 0),s([m("boolean")],t.prototype,"autoPlay",void 0),s([m("number"),f(10)],t.prototype,"speed",void 0),s([m("boolean")],t.prototype,"forwards",void 0),t}(t.Component),h="_s|r|c_";t.resource.registerInstance(t.RESOURCE_TYPE.SPRITE_ANIMATION,(function(e){var t=e.name,n=e.data;return new Promise((function(e){var r,i,a=n.json,s=o.BaseTexture.from(n.image),c=a.frames||{},p=a.animations||{},l={};for(var m in c){l[t+h+m]=c[m]}for(var m in p){var f=[];if(p[m]&&p[m].length>=0)try{for(var d=(r=void 0,u(p[m])),y=d.next();!y.done;y=d.next()){var v=y.value,b=t+h+v;f.push(b)}}catch(e){r={error:e}}finally{try{y&&!y.done&&(i=d.return)&&i.call(d)}finally{if(r)throw r.error}}p[m]=f}a.frames=l;var g=new o.Spritesheet(s,a);g.parse((function(){var t=g.textures,n=[];for(var r in t)n.push(t[r]);e(n)}))}))})),t.resource.registerDestroy(t.RESOURCE_TYPE.SPRITE_ANIMATION,(function(e){var t,n,r=e.instance;if(r)try{for(var o=u(r),i=o.next();!i.done;i=o.next()){i.value.destroy(!0)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}}));var y=function(e){function o(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="SpriteAnimation",t.animates={},t.autoPlay={},t}return a(o,e),o.prototype.init=function(){this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this)},o.prototype.rendererUpdate=function(e){var t=e.transform.size,n=t.width,r=t.height;this.animates[e.id]&&(this.animates[e.id].animatedSprite.width=n,this.animates[e.id].animatedSprite.height=r)},o.prototype.componentChanged=function(e){return c(this,void 0,void 0,(function(){var n,r,o;return p(this,(function(i){switch(i.label){case 0:return"SpriteAnimation"!==e.componentName?[3,7]:(n=e.component,this.autoPlay[e.gameObject.id]=n.autoPlay,e.type!==t.OBSERVER_TYPE.ADD?[3,2]:[4,t.resource.getResource(n.resource)]);case 1:return(r=i.sent().instance)||console.error("GameObject:"+e.gameObject.name+"'s Img resource load error"),this.add({frames:r,id:e.gameObject.id,component:n}),[3,7];case 2:return e.type!==t.OBSERVER_TYPE.CHANGE?[3,6]:e.prop&&"speed"===e.prop.prop[0]?(this.animates[e.gameObject.id].speed=1e3/60/n.speed,[3,5]):[3,3];case 3:return[4,t.resource.getResource(n.resource)];case 4:(o=i.sent().instance)||console.error("GameObject:"+e.gameObject.name+"'s Img resource load error"),this.change({frames:o,id:e.gameObject.id,component:n}),i.label=5;case 5:return[3,7];case 6:e.type===t.OBSERVER_TYPE.REMOVE&&this.remove(e.gameObject.id),i.label=7;case 7:return[2]}}))}))},o.prototype.add=function(e){var t=e.frames,n=e.id,o=e.component,i=new r.SpriteAnimation({frames:t});this.animates[n]=i,this.containerManager.getContainer(n).addChildAt(i.animatedSprite,0),i.animatedSprite.onComplete=function(){o.emit("complete")},i.animatedSprite.onFrameChange=function(){o.emit("frameChange")},i.animatedSprite.onLoop=function(){o.emit("loop")},o.animate=this.animates[n],this.animates[n].speed=1e3/60/o.speed,this.autoPlay[n]&&i.animatedSprite.play()},o.prototype.change=function(e){var t=e.frames,n=e.id,r=e.component;this.remove(n,!0),this.add({frames:t,id:n,component:r})},o.prototype.remove=function(e,t){var n=this.animates[e];this.autoPlay[e]=n.animatedSprite.playing,this.containerManager.getContainer(e).removeChild(n.animatedSprite),n.animatedSprite.destroy({children:!0}),delete this.animates[e],t||delete this.autoPlay[e]},o.systemName="SpriteAnimation",o=s([t.decorators.componentObserver({SpriteAnimation:["speed","resource"]})],o)}(n.Renderer);return e.SpriteAnimation=d,e.SpriteAnimationSystem=y,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,EVA.rendererAdapter,PIXI);
@@ -0,0 +1,347 @@
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
+
3
+ import { __extends, __decorate, __values, __awaiter, __generator } from 'tslib';
4
+ import { Component, resource, RESOURCE_TYPE, OBSERVER_TYPE, decorators } from '@eva/eva.js/dist/miniprogram';
5
+ import { type, step } from '@eva/inspector-decorator';
6
+ import { RendererSystem, Renderer } from '@eva/plugin-renderer/dist/miniprogram';
7
+ import { SpriteAnimation as SpriteAnimation$4 } from '@eva/renderer-adapter/dist/miniprogram';
8
+ import { BaseTexture, Spritesheet } from '@eva/miniprogram-pixi';
9
+
10
+ var SpriteAnimation$2 = function (_super) {
11
+ __extends(SpriteAnimation, _super);
12
+
13
+ function SpriteAnimation() {
14
+ var _this = _super !== null && _super.apply(this, arguments) || this;
15
+
16
+ _this.resource = '';
17
+ _this.autoPlay = true;
18
+ _this.speed = 100;
19
+ _this.waitPlay = false;
20
+ _this.waitStop = false;
21
+ _this.times = Infinity;
22
+ _this.count = 0;
23
+ return _this;
24
+ }
25
+
26
+ SpriteAnimation.prototype.init = function (obj) {
27
+ var _this = this;
28
+
29
+ obj && _extends(this, obj);
30
+ this.on('loop', function () {
31
+ if (++_this.count >= _this.times) {
32
+ _this.animate.stop();
33
+
34
+ _this.emit('complete');
35
+ }
36
+ });
37
+ };
38
+
39
+ SpriteAnimation.prototype.play = function (times) {
40
+ if (times === void 0) {
41
+ times = Infinity;
42
+ }
43
+
44
+ if (times === 0) {
45
+ return;
46
+ }
47
+
48
+ this.times = times;
49
+
50
+ if (!this.animate) {
51
+ this.waitPlay = true;
52
+ } else {
53
+ this.animate.play();
54
+ this.count = 0;
55
+ }
56
+ };
57
+
58
+ SpriteAnimation.prototype.stop = function () {
59
+ if (!this.animate) {
60
+ this.waitStop = true;
61
+ } else {
62
+ this.animate.stop();
63
+ }
64
+ };
65
+
66
+ Object.defineProperty(SpriteAnimation.prototype, "animate", {
67
+ get: function get() {
68
+ return this._animate;
69
+ },
70
+ set: function set(val) {
71
+ this._animate = val;
72
+
73
+ if (this.waitPlay) {
74
+ this.waitPlay = false;
75
+ this.play(this.times);
76
+ }
77
+
78
+ if (this.waitStop) {
79
+ this.waitStop = false;
80
+ this.stop();
81
+ }
82
+ },
83
+ enumerable: false,
84
+ configurable: true
85
+ });
86
+
87
+ SpriteAnimation.prototype.gotoAndPlay = function (frameNumber) {
88
+ this.animate.gotoAndPlay(frameNumber);
89
+ };
90
+
91
+ SpriteAnimation.prototype.gotoAndStop = function (frameNumber) {
92
+ this.animate.gotoAndStop(frameNumber);
93
+ };
94
+
95
+ SpriteAnimation.componentName = 'SpriteAnimation';
96
+
97
+ __decorate([type('string')], SpriteAnimation.prototype, "resource", void 0);
98
+
99
+ __decorate([type('boolean')], SpriteAnimation.prototype, "autoPlay", void 0);
100
+
101
+ __decorate([type('number'), step(10)], SpriteAnimation.prototype, "speed", void 0);
102
+
103
+ return SpriteAnimation;
104
+ }(Component);
105
+
106
+ var SpriteAnimation$3 = SpriteAnimation$2;
107
+ var resourceKeySplit = '_s|r|c_';
108
+ resource.registerInstance(RESOURCE_TYPE.SPRITE_ANIMATION, function (_a) {
109
+ var name = _a.name,
110
+ data = _a.data;
111
+ return new Promise(function (r) {
112
+ var e_1, _a;
113
+
114
+ var textureObj = data.json;
115
+ var texture = BaseTexture.from(data.image);
116
+ var frames = textureObj.frames || {};
117
+ var animations = textureObj.animations || {};
118
+ var newFrames = {};
119
+
120
+ for (var key in frames) {
121
+ var newKey = name + resourceKeySplit + key;
122
+ newFrames[newKey] = frames[key];
123
+ }
124
+
125
+ for (var key in animations) {
126
+ var spriteList = [];
127
+
128
+ if (animations[key] && animations[key].length >= 0) {
129
+ try {
130
+ for (var _b = (e_1 = void 0, __values(animations[key])), _c = _b.next(); !_c.done; _c = _b.next()) {
131
+ var spriteName = _c.value;
132
+ var newSpriteName = name + resourceKeySplit + spriteName;
133
+ spriteList.push(newSpriteName);
134
+ }
135
+ } catch (e_1_1) {
136
+ e_1 = {
137
+ error: e_1_1
138
+ };
139
+ } finally {
140
+ try {
141
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
142
+ } finally {
143
+ if (e_1) throw e_1.error;
144
+ }
145
+ }
146
+ }
147
+
148
+ animations[key] = spriteList;
149
+ }
150
+
151
+ textureObj.frames = newFrames;
152
+ var spriteSheet = new Spritesheet(texture, textureObj);
153
+ spriteSheet.parse(function () {
154
+ var textures = spriteSheet.textures;
155
+ var spriteFrames = [];
156
+
157
+ for (var key in textures) {
158
+ spriteFrames.push(textures[key]);
159
+ }
160
+
161
+ r(spriteFrames);
162
+ });
163
+ });
164
+ });
165
+ resource.registerDestroy(RESOURCE_TYPE.SPRITE_ANIMATION, function (_a) {
166
+ var e_2, _b;
167
+
168
+ var instance = _a.instance;
169
+ if (!instance) return;
170
+
171
+ try {
172
+ for (var instance_1 = __values(instance), instance_1_1 = instance_1.next(); !instance_1_1.done; instance_1_1 = instance_1.next()) {
173
+ var texture = instance_1_1.value;
174
+ texture.destroy(true);
175
+ }
176
+ } catch (e_2_1) {
177
+ e_2 = {
178
+ error: e_2_1
179
+ };
180
+ } finally {
181
+ try {
182
+ if (instance_1_1 && !instance_1_1.done && (_b = instance_1.return)) _b.call(instance_1);
183
+ } finally {
184
+ if (e_2) throw e_2.error;
185
+ }
186
+ }
187
+ });
188
+
189
+ var SpriteAnimation = function (_super) {
190
+ __extends(SpriteAnimation, _super);
191
+
192
+ function SpriteAnimation() {
193
+ var _this = _super !== null && _super.apply(this, arguments) || this;
194
+
195
+ _this.name = 'SpriteAnimation';
196
+ _this.animates = {};
197
+ _this.autoPlay = {};
198
+ return _this;
199
+ }
200
+
201
+ SpriteAnimation.prototype.init = function () {
202
+ this.renderSystem = this.game.getSystem(RendererSystem);
203
+ this.renderSystem.rendererManager.register(this);
204
+ };
205
+
206
+ SpriteAnimation.prototype.rendererUpdate = function (gameObject) {
207
+ var _a = gameObject.transform.size,
208
+ width = _a.width,
209
+ height = _a.height;
210
+
211
+ if (this.animates[gameObject.id]) {
212
+ this.animates[gameObject.id].animatedSprite.width = width;
213
+ this.animates[gameObject.id].animatedSprite.height = height;
214
+ }
215
+ };
216
+
217
+ SpriteAnimation.prototype.componentChanged = function (changed) {
218
+ return __awaiter(this, void 0, void 0, function () {
219
+ var component, frames_1, frames_2;
220
+ return __generator(this, function (_a) {
221
+ switch (_a.label) {
222
+ case 0:
223
+ if (!(changed.componentName === 'SpriteAnimation')) return [3, 7];
224
+ component = changed.component;
225
+ this.autoPlay[changed.gameObject.id] = component.autoPlay;
226
+ if (!(changed.type === OBSERVER_TYPE.ADD)) return [3, 2];
227
+ return [4, resource.getResource(component.resource)];
228
+
229
+ case 1:
230
+ frames_1 = _a.sent().instance;
231
+
232
+ if (!frames_1) {
233
+ console.error("GameObject:" + changed.gameObject.name + "'s Img resource load error");
234
+ }
235
+
236
+ this.add({
237
+ frames: frames_1,
238
+ id: changed.gameObject.id,
239
+ component: component
240
+ });
241
+ return [3, 7];
242
+
243
+ case 2:
244
+ if (!(changed.type === OBSERVER_TYPE.CHANGE)) return [3, 6];
245
+ if (!(changed.prop && changed.prop.prop[0] === 'speed')) return [3, 3];
246
+ this.animates[changed.gameObject.id].speed = 1000 / 60 / component.speed;
247
+ return [3, 5];
248
+
249
+ case 3:
250
+ return [4, resource.getResource(component.resource)];
251
+
252
+ case 4:
253
+ frames_2 = _a.sent().instance;
254
+
255
+ if (!frames_2) {
256
+ console.error("GameObject:" + changed.gameObject.name + "'s Img resource load error");
257
+ }
258
+
259
+ this.change({
260
+ frames: frames_2,
261
+ id: changed.gameObject.id,
262
+ component: component
263
+ });
264
+ _a.label = 5;
265
+
266
+ case 5:
267
+ return [3, 7];
268
+
269
+ case 6:
270
+ if (changed.type === OBSERVER_TYPE.REMOVE) {
271
+ this.remove(changed.gameObject.id);
272
+ }
273
+
274
+ _a.label = 7;
275
+
276
+ case 7:
277
+ return [2];
278
+ }
279
+ });
280
+ });
281
+ };
282
+
283
+ SpriteAnimation.prototype.add = function (_a) {
284
+ var frames = _a.frames,
285
+ id = _a.id,
286
+ component = _a.component;
287
+ var animate = new SpriteAnimation$4({
288
+ frames: frames
289
+ });
290
+ this.animates[id] = animate;
291
+ this.containerManager.getContainer(id).addChildAt(animate.animatedSprite, 0);
292
+
293
+ animate.animatedSprite.onComplete = function () {
294
+ component.emit('complete');
295
+ };
296
+
297
+ animate.animatedSprite.onFrameChange = function () {
298
+ component.emit('frameChange');
299
+ };
300
+
301
+ animate.animatedSprite.onLoop = function () {
302
+ component.emit('loop');
303
+ };
304
+
305
+ component.animate = this.animates[id];
306
+ this.animates[id].speed = 1000 / 60 / component.speed;
307
+
308
+ if (this.autoPlay[id]) {
309
+ animate.animatedSprite.play();
310
+ }
311
+ };
312
+
313
+ SpriteAnimation.prototype.change = function (_a) {
314
+ var frames = _a.frames,
315
+ id = _a.id,
316
+ component = _a.component;
317
+ this.remove(id, true);
318
+ this.add({
319
+ frames: frames,
320
+ id: id,
321
+ component: component
322
+ });
323
+ };
324
+
325
+ SpriteAnimation.prototype.remove = function (id, isChange) {
326
+ var animate = this.animates[id];
327
+ this.autoPlay[id] = animate.animatedSprite.playing;
328
+ this.containerManager.getContainer(id).removeChild(animate.animatedSprite);
329
+ animate.animatedSprite.destroy({
330
+ children: true
331
+ });
332
+ delete this.animates[id];
333
+
334
+ if (!isChange) {
335
+ delete this.autoPlay[id];
336
+ }
337
+ };
338
+
339
+ SpriteAnimation.systemName = 'SpriteAnimation';
340
+ SpriteAnimation = __decorate([decorators.componentObserver({
341
+ SpriteAnimation: ['speed', 'resource']
342
+ })], SpriteAnimation);
343
+ return SpriteAnimation;
344
+ }(Renderer);
345
+
346
+ var SpriteAnimation$1 = SpriteAnimation;
347
+ export { SpriteAnimation$3 as SpriteAnimation, SpriteAnimation$1 as SpriteAnimationSystem };
@@ -95,6 +95,7 @@ var SpriteAnimation$2 = (function (_super) {
95
95
  _this.resource = '';
96
96
  _this.autoPlay = true;
97
97
  _this.speed = 100;
98
+ _this.forwards = false;
98
99
  _this.waitPlay = false;
99
100
  _this.waitStop = false;
100
101
  _this.times = Infinity;
@@ -106,8 +107,13 @@ var SpriteAnimation$2 = (function (_super) {
106
107
  obj && Object.assign(this, obj);
107
108
  this.on('loop', function () {
108
109
  if (++_this.count >= _this.times) {
109
- _this.animate.stop();
110
- _this.emit('complete');
110
+ if (_this.forwards) {
111
+ _this.animate.animatedSprite.loop = false;
112
+ }
113
+ else {
114
+ _this.animate.stop();
115
+ _this.emit('complete');
116
+ }
111
117
  }
112
118
  });
113
119
  };
@@ -121,6 +127,9 @@ var SpriteAnimation$2 = (function (_super) {
121
127
  this.waitPlay = true;
122
128
  }
123
129
  else {
130
+ if (times === 1 && this.forwards) {
131
+ this.animate.animatedSprite.loop = false;
132
+ }
124
133
  this.animate.play();
125
134
  this.count = 0;
126
135
  }
@@ -157,6 +166,22 @@ var SpriteAnimation$2 = (function (_super) {
157
166
  SpriteAnimation.prototype.gotoAndStop = function (frameNumber) {
158
167
  this.animate.gotoAndStop(frameNumber);
159
168
  };
169
+ Object.defineProperty(SpriteAnimation.prototype, "currentFrame", {
170
+ get: function () {
171
+ var _a, _b;
172
+ return (_b = (_a = this.animate) === null || _a === void 0 ? void 0 : _a.animatedSprite) === null || _b === void 0 ? void 0 : _b.currentFrame;
173
+ },
174
+ enumerable: false,
175
+ configurable: true
176
+ });
177
+ Object.defineProperty(SpriteAnimation.prototype, "totalFrames", {
178
+ get: function () {
179
+ var _a, _b;
180
+ return (_b = (_a = this.animate) === null || _a === void 0 ? void 0 : _a.animatedSprite) === null || _b === void 0 ? void 0 : _b.totalFrames;
181
+ },
182
+ enumerable: false,
183
+ configurable: true
184
+ });
160
185
  SpriteAnimation.componentName = 'SpriteAnimation';
161
186
  __decorate([
162
187
  type('string')
@@ -168,6 +193,9 @@ var SpriteAnimation$2 = (function (_super) {
168
193
  type('number'),
169
194
  step(10)
170
195
  ], SpriteAnimation.prototype, "speed", void 0);
196
+ __decorate([
197
+ type('boolean')
198
+ ], SpriteAnimation.prototype, "forwards", void 0);
171
199
  return SpriteAnimation;
172
200
  }(Component));
173
201
  var SpriteAnimation$3 = SpriteAnimation$2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/plugin-renderer-sprite-animation",
3
- "version": "1.2.2-alpha.0",
3
+ "version": "1.2.2-mini.3",
4
4
  "description": "@eva/plugin-renderer-sprite-animation",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-sprite-animation.esm.js",
@@ -19,9 +19,9 @@
19
19
  "homepage": "https://eva.js.org",
20
20
  "dependencies": {
21
21
  "@eva/inspector-decorator": "^0.0.5",
22
- "@eva/plugin-renderer": "1.2.2-alpha.0",
23
- "@eva/renderer-adapter": "1.2.2-alpha.0",
24
- "@eva/eva.js": "1.2.2-alpha.0",
22
+ "@eva/plugin-renderer": "1.2.2-mini.3",
23
+ "@eva/renderer-adapter": "1.2.2-mini.3",
24
+ "@eva/eva.js": "1.2.2-mini.3",
25
25
  "pixi.js": "^4.8.7"
26
26
  }
27
27
  }