diff --git a/src/containers/sprite-library.jsx b/src/containers/sprite-library.jsx index 6738bacd8f339434946f30564e15ba26050728e2..fb9a6ce0348a067c059da750a77c49477950c30d 100644 --- a/src/containers/sprite-library.jsx +++ b/src/containers/sprite-library.jsx @@ -14,7 +14,9 @@ class SpriteLibrary extends React.Component { 'handleItemSelect', 'handleMouseEnter', 'handleMouseLeave', - 'rotateCostume' + 'rotateCostume', + 'startRotatingCostumes', + 'stopRotatingCostumes' ]); this.state = { activeSprite: null, @@ -29,11 +31,17 @@ class SpriteLibrary extends React.Component { this.props.vm.addSprite2(JSON.stringify(item.json)); } handleMouseEnter (item) { - this.setState({activeSprite: item}); - if (this.intervalId) clearInterval(this.intervalId); - this.intervalId = setInterval(this.rotateCostume, 300); + this.stopRotatingCostumes(); + this.setState({activeSprite: item}, this.startRotatingCostumes); } handleMouseLeave () { + this.stopRotatingCostumes(); + } + startRotatingCostumes () { + if (!this.state.activeSprite) return; + this.intervalId = setInterval(this.rotateCostume, 300); + } + stopRotatingCostumes () { this.intervalId = clearInterval(this.intervalId); } rotateCostume () {