| import CompExpressionInterface from './CompInterface'; |
| |
| const Expressions = (function () { |
| var ob = {}; |
| ob.initExpressions = initExpressions; |
| |
| function initExpressions(animation) { |
| var stackCount = 0; |
| var registers = []; |
| |
| function pushExpression() { |
| stackCount += 1; |
| } |
| |
| function popExpression() { |
| stackCount -= 1; |
| if (stackCount === 0) { |
| releaseInstances(); |
| } |
| } |
| |
| function registerExpressionProperty(expression) { |
| if (registers.indexOf(expression) === -1) { |
| registers.push(expression); |
| } |
| } |
| |
| function releaseInstances() { |
| var i; |
| var len = registers.length; |
| for (i = 0; i < len; i += 1) { |
| registers[i].release(); |
| } |
| registers.length = 0; |
| } |
| |
| animation.renderer.compInterface = CompExpressionInterface(animation.renderer); |
| animation.renderer.globalData.projectInterface.registerComposition(animation.renderer); |
| animation.renderer.globalData.pushExpression = pushExpression; |
| animation.renderer.globalData.popExpression = popExpression; |
| animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty; |
| } |
| return ob; |
| }()); |
| |
| export default Expressions; |