createAnimate.js 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /**
  2. *
  3. * @authors Eric Hsiao
  4. *
  5. */
  6. createAnimate = function () {
  7. //private menbers
  8. var exportRoot;
  9. //private methods
  10. function init() {
  11. console.log('main is loaded.');
  12. }
  13. function load($container, _namespace, _callback) {
  14. loadAnimate($container, _namespace,
  15. function (_exportRoot) {
  16. exportRoot = _exportRoot;
  17. if (_callback != null) {
  18. _callback(exportRoot);
  19. }
  20. });
  21. }
  22. function loadAnimate($container ,_namespace, _callback) {
  23. var $canvas, stage, _exportRoot, anim_container, dom_overlay_container, fnStartAnimation;
  24. // console.log(this[_namespace]);
  25. var key = Object.keys(this[_namespace].compositions)[0];
  26. var comp = this[_namespace].getComposition(key);
  27. var lib = comp.getLibrary();
  28. $canvas = $('<canvas></canvas>').attr({
  29. width: lib.properties.width,
  30. height: lib.properties.height
  31. }).appendTo($container);
  32. var loader = new createjs.LoadQueue(false);
  33. loader.addEventListener("fileload", function (evt) { handleFileLoad(evt, comp) });
  34. loader.addEventListener("complete", function (evt) { handleComplete(evt, comp) });
  35. loader.loadManifest(lib.properties.manifest);
  36. function handleFileLoad(evt, comp) {
  37. var images = comp.getImages();
  38. if (evt && (evt.item.type == "image")) { images[evt.item.id] = evt.result; }
  39. }
  40. function handleComplete(evt, comp) {
  41. var lib = comp.getLibrary();
  42. var ss = comp.getSpriteSheet();
  43. var queue = evt.target;
  44. var ssMetadata = lib.ssMetadata;
  45. for (i = 0; i < ssMetadata.length; i++) {
  46. ss[ssMetadata[i].name] = new createjs.SpriteSheet({ "images": [queue.getResult(ssMetadata[i].name)], "frames": ssMetadata[i].frames })
  47. }
  48. _exportRoot = new lib[_namespace]();
  49. stage = new lib.Stage($canvas[0]);
  50. fnStartAnimation = function () {
  51. stage.addChild(_exportRoot);
  52. createjs.Ticker.setFPS(lib.properties.fps);
  53. createjs.Ticker.addEventListener("tick", stage);
  54. _exportRoot.stop();
  55. if (_callback != null) {
  56. _callback(_exportRoot);
  57. }
  58. }
  59. this[_namespace].compositionLoaded(lib.properties.id);
  60. fnStartAnimation();
  61. }
  62. }
  63. //constructor
  64. {
  65. $(document).ready(function () {
  66. init();
  67. });
  68. }
  69. //public
  70. return {
  71. load: function ($container, _namespace, _callback) {
  72. load( $container, _namespace, _callback);
  73. }
  74. }
  75. }