@curiousmedia/createjs-scene-container
Version:
A scene manager for CreateJS
3 lines (2 loc) • 6.74 kB
JavaScript
;function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function a(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return u(this,n)}}function c(e,t,n){return(c="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=i(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}Object.defineProperty(exports,"__esModule",{value:!0});var s,l=function(t){r(o,createjs.Container);var i=a(o);function o(t,n){var r;return e(this,o),(r=i.call(this)).name=t,r.options=n,r.active=!1,r}return n(o,[{key:"setup",value:function(){return Promise.resolve()}},{key:"reset",value:function(){return Promise.resolve()}},{key:"start",value:function(){return this.setActive(!0),Promise.resolve()}},{key:"end",value:function(){return this.setActive(!1),Promise.resolve()}},{key:"setActive",value:function(e){this.active=e}},{key:"animateIn",value:function(){return Promise.resolve()}},{key:"animateOut",value:function(){return Promise.resolve()}},{key:"resize",value:function(e,t){}},{key:"update",value:function(){}},{key:"destroy",value:function(){this.setActive(!1)}}],[{key:"preload",value:function(){return Promise.resolve()}}]),o}(),f={},v={},h=function(t){r(u,createjs.Container);var o=a(u);function u(){var t;if(e(this,u),t=o.call(this),s)throw new Error("Only one instance of SceneContainer allowed");return t.anchorX=.5,t.anchorY=.5,t._last=null,t.lastID="",t.current=null,t.currentID="",t}return n(u,[{key:"gotoScene",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"default",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.current,a=u.getSceneDefinition(e);if(!a)throw new Error("No Scene with id: "+e);y(" ------ "),y("Starting Scene Change");var c,s=Promise.resolve();if(o){y("Removing Current Scene"),s=(s=s.then((function(){return o.end()}))).then((function(){return o.animateOut()}));var l=u.getTransitionDefinition(r);(c=l.instance)&&(y("Adding Transition"),s=(s=(s=(s=s.then((function(){return n.addTransition(c)}))).then((function(){return c.setup(i)}))).then((function(){return c.animateIn()}))).then((function(){return c.loadAssets()})))}y("Next Scene: "+a.id);var f,v=a.sceneClass;y("Loading Next Scene"),s=s.then((function(){return v.preload()})),y("Creating Next Scene"),s=(s=(s=(s=s.then((function(){return f=new v(a.id,t),Promise.resolve()}))).then((function(){return n.swapScenes(o,f)}))).then((function(){return f.setup(t)}))).then((function(){return f.reset()})),c&&(y("Removing Transition"),s=(s=s.then((function(){return c.animateOut()}))).then((function(){return n.removeChild(c),Promise.resolve()}))),(s=s.then((function(){return f.animateIn()}))).then((function(){return f.start()}))}},{key:"setScreenAnchors",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.5,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5;this.anchorX=e,this.anchorY=t}},{key:"swapScenes",value:function(e,t){e&&(e.destroy(),this.removeChild(e)),this.addChildAt(t,0),this.current=t;var n=new Event("change");return n.current=this.current,n.previous=e,this.dispatchEvent(n),Promise.resolve()}},{key:"addTransition",value:function(e){return this.addChild(e),Promise.resolve()}},{key:"transitOut",value:function(){return this.transitionOverlay.transitOut()}},{key:"transitIn",value:function(){return this.transitionOverlay.transitIn()}},{key:"_tick",value:function(e){c(i(u.prototype),"_tick",this).call(this,e);var t=this.stage;t&&this.parent===t&&(this.x=Math.floor(t.canvas.width*this.anchorX),this.y=Math.floor(t.canvas.height*this.anchorY)),this.current&&this.current.update(e.delta/1e3)}}],[{key:"scenes",get:function(){return f}},{key:"currentScene",get:function(){return u.getCurrentScene()}},{key:"getInstance",value:function(){return s||(s=new u),s}},{key:"getCurrentScene",value:function(){return s&&s.current}},{key:"registerScene",value:function(e,t){f[e]={id:e,sceneClass:t}}},{key:"registerTransition",value:function(e,t){v[e]={id:e,instance:new t(e)}}},{key:"registerDefaultTransition",value:function(e){this.registerTransition("default",e)}},{key:"getSceneDefinition",value:function(e){return f[e]||!1}},{key:"getTransitionDefinition",value:function(e){return v[e]||!1}},{key:"gotoScene",value:function(e,t,n,r){s.gotoScene(e,t,n,r)}}]),u}();function y(e){return new Promise((function(t){console.log(e),t()}))}var p=function(t){r(o,l);var i=a(o);function o(t,n){return e(this,o),i.call(this,t,n)}return n(o,[{key:"loadAssets",value:function(){return Promise.resolve()}}]),o}(),d=function(t){r(o,p);var i=a(o);function o(t,n){var r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#000";e(this,o);var a=1664,c=768;return(r=i.call(this,t,n)).regX=a/2,r.regY=c/2,r.overlay=new createjs.Shape,r.overlay.graphics.f(u).dr(0,0,a,c),r.overlay.set({alpha:0,visible:!1}),r.addChild(r.overlay),r}return n(o,[{key:"animateIn",value:function(){var e=this;return new Promise((function(t){createjs.Tween.get(e.overlay).set({visible:!0}).to({alpha:1},250,createjs.Ease.quadInOut).call(t)}))}},{key:"animateOut",value:function(){var e=this;return new Promise((function(t){createjs.Tween.get(e.overlay).to({alpha:0},250,createjs.Ease.quadInOut).set({visible:!1}).call(t)}))}}]),o}();exports.DefaultSceneTransition=d,exports.Scene=l,exports.SceneContainer=h,exports.SceneTransition=p;
//# sourceMappingURL=createjs-scene-container.js.map