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