topical media & game development

talk show tell print

mobile-graphic-easel-examples-SpriteSheetBuilderMC-SpriteSheetBuilder-MovieClip.htm / htm



  <!DOCTYPE html>
  <html>
  <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          <title>EaselJS Example: SpriteSheetBuilder</title>
  
          <link href="../mobile-graphic-easel-examples-assets-demoStyles.css" rel="stylesheet" type="text/css" />
          
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-utils-UID.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-events-EventDispatcher.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-utils-Ticker.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-geom-Matrix2D.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-geom-Rectangle.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-DisplayObject.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-Container.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-SpriteSheet.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-BitmapAnimation.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-Stage.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-events-MouseEvent.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-Graphics.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-Shadow.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-Shape.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-utils-SpriteSheetBuilder.js"></script>
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-Text.js"></script>
          
          <script src="../mobile-graphic-easel-examples-assets-tweenjs-0.4.0.min.js"></script> <!-- required for MovieClip -->
          <script type="text/javascript" src="../mobile-graphic-easel-src-easeljs-display-MovieClip.js"></script>
          <script src="gunnertron_g.js"></script>
  
          <!-- We also provide hosted minified versions of all CreateJS libraries.
            http://code.createjs.com -->
  
          <script>
          var canvas, stage, mc, w;
          var scale = 0.5;
  
          function init() {
                  //find canvas and load images, wait for last image to load
                  canvas = document.getElementById("testCanvas");
                  stage = new createjs.Stage(canvas);
                  
                  mc = new lib.gunnertron();
                  w = mc.nominalBounds.width*scale;
                  mc.setTransform(100+w/2,100,scale,scale);
                  stage.addChild(mc);
                  
                  var label1 = stage.addChild(new createjs.Text("MovieClip (vector)", "14px Arial", "#FFF"));
                  label1.textAlign = "center";
                  label1.setTransform(mc.x,30);
                  
                  var label2 = stage.addChild(label1.clone());
                  label2.text = "BitmapAnimation";
                  label2.x += w+30;
                  
                  // create the sprite sheet builder:
                  var builder = new createjs.SpriteSheetBuilder();
                  builder.scale = scale;
                  builder.maxWidth = 1024;
                  builder.addMovieClip(mc);
                  builder.addEventListener("complete" ,buildComplete);
                  builder.buildAsync();
                  
                  // append the generated spritesheet image for demo purposes:
                  document.body.appendChild(builder._data.images[0]);
                  
                  createjs.Ticker.setFPS(30);
                  createjs.Ticker.addEventListener("tick", stage);
          }
          
          function buildComplete(event) {
                  var spriteSheet = event.target.spriteSheet;
                  var bmpAnim = new createjs.BitmapAnimation(spriteSheet);
                  bmpAnim.setTransform(mc.x+w+30|0, mc.y);
                  stage.addChild(bmpAnim);
                  
                  mc.gotoAndPlay(0);
                  bmpAnim.gotoAndPlay(0);
          }
  
          </script>
  </head>
          
  <body onload="init();">
  
          <header id="header" class="EaselJS">
              <h1><span class="text-product">Easel<strong>JS</strong></span> SpriteSheetBuilder Sample</h1>
              <p>
              Using <strong>SpriteSheetBuilder</strong> to create <strong>SpriteSheet</strong> instances asynchronously at run time from a <strong>MovieClip</strong> instance.
              Note that a spritesheet of this animation (at scale=1) is 2.5MB, whereas the "over the wire" (zipped) size of the movieclip is only 19kb, and it can
              be scaled dynamically at runtime.
              
              </p>
          </header>
  
          <div class="canvasHolder">
                  <canvas id="testCanvas" width="960" height="200"></canvas>
          </div>
  </body>
  </html>
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.