jquery integration as plugin
diff --git a/player/index.html b/player/index.html index 99b6d31..589493c 100644 --- a/player/index.html +++ b/player/index.html
@@ -1,6 +1,7 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <meta charset="UTF-8"> <head> + <!-- <script src="extras/jquery-2.1.4.min.js"></script> --> <!-- build:js bodymovin.js --> <script src="js/main.js"></script> <script src="js/3rd_party/transformation-matrix.js"></script> @@ -36,6 +37,14 @@ <!-- endbuild --> </head> <body style="background-color:#666; margin: 0px;height: 100%; font-family: sans-serif;font-size: 10px"> -<div style="width:700px;height:300px;background-color:#000;display:inline-block" class="bodymovin" data-bm-path="exports/letter_i" data-bm-type="canvas" data-bm-loop="true" data-bm-prerender="true"></div> +<div style="width:700px;height:300px;background-color:#000;display:inline-block" class="bodymovers bodymover1" data-bm-path="exports/letter_i" data-bm-type="canvas" data-bm-loop="true" data-bm-prerender="true"></div> +<div style="width:100px;height:50px;background-color:#000;display:inline-block" class="bodymovers bodymover2" data-bm-path="exports/letter_i" data-bm-type="canvas" data-bm-loop="true" data-bm-prerender="true"></div> +<script> + /*$('.bodymovers').bodymovin('registerAnimation',{ + animType: 'canvas', + loop: true, + path: 'exports/letter_i' + });*/ +</script> </body> </html>
diff --git a/player/js/module.js b/player/js/module.js index 59158fd..a91f4cf 100644 --- a/player/js/module.js +++ b/player/js/module.js
@@ -73,4 +73,65 @@ var readyStateCheckInterval = setInterval(checkReady, 100); + if(window.jQuery && jQuery.fn){ + + var initializePlugin = (function(){ + var animationMap = []; + + var iterateElements = function(elements,params){ + elements.each(function(){ + params.wrapper = this; + animationMap.push({ + elem : this, + anim: bodymovin.loadAnimation(params) + }); + }); + /*this.each(function() { + // Do something to each element here. + });*/ + }; + + var performAction = function(elements,action,params){ + var i, len = animationMap.length; + elements.each(function(){ + i = 0; + while(i<len){ + if(animationMap[i].elem == this){ + animationMap[i].anim[action].apply(animationMap[i].anim,params); + break; + } + i+=1; + } + }) + }; + + jQuery.fn.bodymovin = function(action,params){ + switch(action){ + case 'pause': + case 'play': + case 'togglePause': + case 'setSpeed': + case 'setDirection': + case 'moveFrame': + case 'stop': + case 'resize': + case 'goToAndStop': + case 'gotoAndStop': + performAction(this,action,Array.prototype.slice.call(arguments,1)); + break; + case 'registerAnimation': + case 'loadAnimation': + iterateElements(this,params); + break; + case 'setSubframeRendering': + setSubframeRendering(params); + break; + case 'start': + start(); + break; + } + } + }()); + } + }(window)); \ No newline at end of file