1
|
{"uid":"44F0ACF0K33D7A4596SB37BE1C1B90CB7A77","isLoaded":true,"lastModificationTime":0,"items":{"name":"Component_BlendAnimation","type":"game_script","order":1,"content":"# ===================================================================\n#\n# Script: Component_BlendAnimation\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass Component_BlendAnimation extends gs.Component_Animation\n ###*\n * Executes a blend-animation on a game-object.\n *\n * @module gs\n * @class Component_BlendAnimation\n * @extends gs.Component_Animation\n * @memberof gs\n * @constructor\n ###\n constructor: (data) ->\n super\n \n ###*\n * The easing-object used for the animation.\n * @property easing\n * @type gs.Easing\n ###\n @easing = new gs.Easing(null, data?.easing)\n \n ###*\n * Serializes the blend-animation into a data-bundle.\n *\n * @method toDataBundle\n ###\n toDataBundle: ->\n easing: @easing\n \n ###*\n * Updates the blend-animation.\n *\n * @method update\n ### \n update: ->\n super\n if not @easing.isRunning then return\n\n @easing.updateValue()\n @object.opacity = @easing.value\n \n if not @easing.isRunning\n @object.opacity = Math.round(@object.opacity)\n @callback?(@object, this)\n \n ###*\n * Starts the blend-animation.\n *\n * @method start\n * @param {number} opacity The target opacity.\n * @param {number} duration The duration in frames.\n * @param {Object} easingType The easing-type.\n * @param {function} [callback] An optional callback called if blending is finished. \n ### \n start: (opacity, duration, easingType, callback) ->\n @callback = callback\n @easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN]\n if @object.opacity == opacity then return @callback?(@object, this)\n \n if duration == 0 or @isInstantSkip()\n @object.opacity = opacity\n @callback?(@object, this)\n else\n @easing.startValue(@object.opacity, opacity - @object.opacity, duration)\n \ngs.Component_BlendAnimation = Component_BlendAnimation","parentId":"A8E9945CKEE5CA4855SAC81E480CB8098E0E","folder":false,"compiledContent":"var Component_BlendAnimation,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nComponent_BlendAnimation = (function(superClass) {\n extend(Component_BlendAnimation, superClass);\n\n\n /**\n * Executes a blend-animation on a game-object.\n *\n * @module gs\n * @class Component_BlendAnimation\n * @extends gs.Component_Animation\n * @memberof gs\n * @constructor\n */\n\n function Component_BlendAnimation(data) {\n Component_BlendAnimation.__super__.constructor.apply(this, arguments);\n\n /**\n * The easing-object used for the animation.\n * @property easing\n * @type gs.Easing\n */\n this.easing = new gs.Easing(null, data != null ? data.easing : void 0);\n }\n\n\n /**\n * Serializes the blend-animation into a data-bundle.\n *\n * @method toDataBundle\n */\n\n Component_BlendAnimation.prototype.toDataBundle = function() {\n return {\n easing: this.easing\n };\n };\n\n\n /**\n * Updates the blend-animation.\n *\n * @method update\n */\n\n Component_BlendAnimation.prototype.update = function() {\n Component_BlendAnimation.__super__.update.apply(this, arguments);\n if (!this.easing.isRunning) {\n return;\n }\n this.easing.updateValue();\n this.object.opacity = this.easing.value;\n if (!this.easing.isRunning) {\n this.object.opacity = Math.round(this.object.opacity);\n return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n }\n };\n\n\n /**\n * Starts the blend-animation.\n *\n * @method start\n * @param {number} opacity The target opacity.\n * @param {number} duration The duration in frames.\n * @param {Object} easingType The easing-type.\n * @param {function} [callback] An optional callback called if blending is finished.\n */\n\n Component_BlendAnimation.prototype.start = function(opacity, duration, easingType, callback) {\n this.callback = callback;\n this.easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN];\n if (this.object.opacity === opacity) {\n return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n }\n if (duration === 0 || this.isInstantSkip()) {\n this.object.opacity = opacity;\n return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n } else {\n return this.easing.startValue(this.object.opacity, opacity - this.object.opacity, duration);\n }\n };\n\n return Component_BlendAnimation;\n\n})(gs.Component_Animation);\n\ngs.Component_BlendAnimation = Component_BlendAnimation;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsd0JBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7OztFQVNhLGtDQUFDLElBQUQ7SUFDVCwyREFBQSxTQUFBOztBQUVBOzs7OztJQUtBLElBQUMsQ0FBQSxNQUFELEdBQWMsSUFBQSxFQUFFLENBQUMsTUFBSCxDQUFVLElBQVYsaUJBQWdCLElBQUksQ0FBRSxlQUF0QjtFQVJMOzs7QUFVYjs7Ozs7O3FDQUtBLFlBQUEsR0FBYyxTQUFBO1dBQ1Y7TUFBQSxNQUFBLEVBQVEsSUFBQyxDQUFBLE1BQVQ7O0VBRFU7OztBQUdkOzs7Ozs7cUNBS0EsTUFBQSxHQUFRLFNBQUE7SUFDSixzREFBQSxTQUFBO0lBQ0EsSUFBRyxDQUFJLElBQUMsQ0FBQSxNQUFNLENBQUMsU0FBZjtBQUE4QixhQUE5Qjs7SUFFQSxJQUFDLENBQUEsTUFBTSxDQUFDLFdBQVIsQ0FBQTtJQUNBLElBQUMsQ0FBQSxNQUFNLENBQUMsT0FBUixHQUFrQixJQUFDLENBQUEsTUFBTSxDQUFDO0lBRTFCLElBQUcsQ0FBSSxJQUFDLENBQUEsTUFBTSxDQUFDLFNBQWY7TUFDSSxJQUFDLENBQUEsTUFBTSxDQUFDLE9BQVIsR0FBa0IsSUFBSSxDQUFDLEtBQUwsQ0FBVyxJQUFDLENBQUEsTUFBTSxDQUFDLE9BQW5CO21EQUNsQixJQUFDLENBQUEsU0FBVSxJQUFDLENBQUEsUUFBUSxlQUZ4Qjs7RUFQSTs7O0FBV1I7Ozs7Ozs7Ozs7cUNBU0EsS0FBQSxHQUFPLFNBQUMsT0FBRCxFQUFVLFFBQVYsRUFBb0IsVUFBcEIsRUFBZ0MsUUFBaEM7SUFDSCxJQUFDLENBQUEsUUFBRCxHQUFZO0lBQ1osSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFSLEdBQWUsVUFBQSxJQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBWSxDQUFBLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBZjtJQUNwRCxJQUFHLElBQUMsQ0FBQSxNQUFNLENBQUMsT0FBUixLQUFtQixPQUF0QjtBQUFtQyxtREFBTyxJQUFDLENBQUEsU0FBVSxJQUFDLENBQUEsUUFBUSxlQUE5RDs7SUFFQSxJQUFHLFFBQUEsS0FBWSxDQUFaLElBQWlCLElBQUMsQ0FBQSxhQUFELENBQUEsQ0FBcEI7TUFDSSxJQUFDLENBQUEsTUFBTSxDQUFDLE9BQVIsR0FBa0I7bURBQ2xCLElBQUMsQ0FBQSxTQUFVLElBQUMsQ0FBQSxRQUFRLGVBRnhCO0tBQUEsTUFBQTthQUlJLElBQUMsQ0FBQSxNQUFNLENBQUMsVUFBUixDQUFtQixJQUFDLENBQUEsTUFBTSxDQUFDLE9BQTNCLEVBQW9DLE9BQUEsR0FBVSxJQUFDLENBQUEsTUFBTSxDQUFDLE9BQXRELEVBQStELFFBQS9ELEVBSko7O0VBTEc7Ozs7R0FyRDRCLEVBQUUsQ0FBQzs7QUFnRTFDLEVBQUUsQ0FBQyx3QkFBSCxHQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuI1xuIyAgIFNjcmlwdDogQ29tcG9uZW50X0JsZW5kQW5pbWF0aW9uXG4jXG4jICAgJCRDT1BZUklHSFQkJFxuI1xuIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jbGFzcyBDb21wb25lbnRfQmxlbmRBbmltYXRpb24gZXh0ZW5kcyBncy5Db21wb25lbnRfQW5pbWF0aW9uXG4gICAgIyMjKlxuICAgICogRXhlY3V0ZXMgYSBibGVuZC1hbmltYXRpb24gb24gYSBnYW1lLW9iamVjdC5cbiAgICAqXG4gICAgKiBAbW9kdWxlIGdzXG4gICAgKiBAY2xhc3MgQ29tcG9uZW50X0JsZW5kQW5pbWF0aW9uXG4gICAgKiBAZXh0ZW5kcyBncy5Db21wb25lbnRfQW5pbWF0aW9uXG4gICAgKiBAbWVtYmVyb2YgZ3NcbiAgICAqIEBjb25zdHJ1Y3RvclxuICAgICMjI1xuICAgIGNvbnN0cnVjdG9yOiAoZGF0YSkgLT5cbiAgICAgICAgc3VwZXJcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBUaGUgZWFzaW5nLW9iamVjdCB1c2VkIGZvciB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAqIEBwcm9wZXJ0eSBlYXNpbmdcbiAgICAgICAgKiBAdHlwZSBncy5FYXNpbmdcbiAgICAgICAgIyMjXG4gICAgICAgIEBlYXNpbmcgPSBuZXcgZ3MuRWFzaW5nKG51bGwsIGRhdGE/LmVhc2luZylcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogU2VyaWFsaXplcyB0aGUgYmxlbmQtYW5pbWF0aW9uIGludG8gYSBkYXRhLWJ1bmRsZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHRvRGF0YUJ1bmRsZVxuICAgICMjI1xuICAgIHRvRGF0YUJ1bmRsZTogLT5cbiAgICAgICAgZWFzaW5nOiBAZWFzaW5nXG4gICAgIFxuICAgICMjIypcbiAgICAqIFVwZGF0ZXMgdGhlIGJsZW5kLWFuaW1hdGlvbi5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHVwZGF0ZVxuICAgICMjIyAgIFxuICAgIHVwZGF0ZTogLT5cbiAgICAgICAgc3VwZXJcbiAgICAgICAgaWYgbm90IEBlYXNpbmcuaXNSdW5uaW5nIHRoZW4gcmV0dXJuXG5cbiAgICAgICAgQGVhc2luZy51cGRhdGVWYWx1ZSgpXG4gICAgICAgIEBvYmplY3Qub3BhY2l0eSA9IEBlYXNpbmcudmFsdWVcbiAgICAgICAgXG4gICAgICAgIGlmIG5vdCBAZWFzaW5nLmlzUnVubmluZ1xuICAgICAgICAgICAgQG9iamVjdC5vcGFjaXR5ID0gTWF0aC5yb3VuZChAb2JqZWN0Lm9wYWNpdHkpXG4gICAgICAgICAgICBAY2FsbGJhY2s/KEBvYmplY3QsIHRoaXMpXG4gXG4gICAgIyMjKlxuICAgICogU3RhcnRzIHRoZSBibGVuZC1hbmltYXRpb24uXG4gICAgKlxuICAgICogQG1ldGhvZCBzdGFydFxuICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHkgVGhlIHRhcmdldCBvcGFjaXR5LlxuICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBpbiBmcmFtZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZWFzaW5nVHlwZSBUaGUgZWFzaW5nLXR5cGUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIEFuIG9wdGlvbmFsIGNhbGxiYWNrIGNhbGxlZCBpZiBibGVuZGluZyBpcyBmaW5pc2hlZC4gXG4gICAgIyMjICBcbiAgICBzdGFydDogKG9wYWNpdHksIGR1cmF0aW9uLCBlYXNpbmdUeXBlLCBjYWxsYmFjaykgLT5cbiAgICAgICAgQGNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICAgICAgQGVhc2luZy50eXBlID0gZWFzaW5nVHlwZSB8fCBncy5FYXNpbmdzLkVBU0VfTElORUFSW2dzLkVhc2luZ1R5cGVzLkVBU0VfSU5dXG4gICAgICAgIGlmIEBvYmplY3Qub3BhY2l0eSA9PSBvcGFjaXR5IHRoZW4gcmV0dXJuIEBjYWxsYmFjaz8oQG9iamVjdCwgdGhpcylcbiAgICAgICAgXG4gICAgICAgIGlmIGR1cmF0aW9uID09IDAgb3IgQGlzSW5zdGFudFNraXAoKVxuICAgICAgICAgICAgQG9iamVjdC5vcGFjaXR5ID0gb3BhY2l0eVxuICAgICAgICAgICAgQGNhbGxiYWNrPyhAb2JqZWN0LCB0aGlzKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBAZWFzaW5nLnN0YXJ0VmFsdWUoQG9iamVjdC5vcGFjaXR5LCBvcGFjaXR5IC0gQG9iamVjdC5vcGFjaXR5LCBkdXJhdGlvbilcbiAgICAgICAgXG5ncy5Db21wb25lbnRfQmxlbmRBbmltYXRpb24gPSBDb21wb25lbnRfQmxlbmRBbmltYXRpb24iXX0=\n//# sourceURL=Component_BlendAnimation_25.js"},"summary":["name","type","order"]}
|