From 53ac9329de63d01f11822975a17932828085e877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B0=D0=B2=D1=80=D1=91=D0=BD=D0=BE=D0=B2=20=D0=90?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sun, 2 Mar 2014 10:46:45 +0800 Subject: [PATCH] `isRunning` function for `Sprite` object --- src/shapes/Sprite.js | 9 +++++++ test/unit/shapes/Sprite-test.js | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/shapes/Sprite.js b/src/shapes/Sprite.js index 3dbf2081..e4d63630 100644 --- a/src/shapes/Sprite.js +++ b/src/shapes/Sprite.js @@ -136,6 +136,15 @@ this.anim.stop(); clearInterval(this.interval); }, + /** + * determine if animation of sprite is running or not. returns true or false + * @method + * @memberof Kinetic.Animation.prototype + * @returns {Boolean} + */ + isRunning: function() { + return this.anim.isRunning(); + }, _updateIndex: function() { var index = this.frameIndex(), animation = this.getAnimation(), diff --git a/test/unit/shapes/Sprite-test.js b/test/unit/shapes/Sprite-test.js index 4624eb59..4e89f09f 100644 --- a/test/unit/shapes/Sprite-test.js +++ b/test/unit/shapes/Sprite-test.js @@ -72,6 +72,48 @@ suite('Sprite', function() { }; imageObj.src = 'assets/scorpion-sprite.png'; }); + + test('check is sprite running', function(done){ + var imageObj = new Image(); + imageObj.onload = function() { + var stage = addStage(); + var layer = new Kinetic.Layer(); + + + var sprite = new Kinetic.Sprite({ + x: 200, + y: 50, + image: imageObj, + animation: 'standing', + animations: { + standing: [ + 0, 0, 49, 109, + 52, 0, 49, 109, + 105, 0, 49, 109, + 158, 0, 49, 109, + 210, 0, 49, 109, + 262, 0, 49, 109 + ] + }, + frameRate: 50, + draggable: true, + shadowColor: 'black', + shadowBlur: 3, + shadowOffset: {x: 3, y:1}, + shadowOpacity: 0.3 + }); + + layer.add(sprite); + stage.add(layer); + assert.equal(sprite.isRunning(), false); + sprite.start(); + assert.equal(sprite.isRunning(), true); + sprite.stop(); + done(); + }; + imageObj.src = 'assets/scorpion-sprite.png'; + }); + test.skip('can change frame rate on fly', function(done){ var imageObj = new Image(); imageObj.onload = function() {