topical media & game development

talk show tell print

mobile-graphic-easel-examples-Segments.htm / htm



  <!DOCTYPE html>
  <html>
  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
      <title>EaselJS Example: Simple Animation</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-geom-Matrix2D.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-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-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-Shape.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-utils-Ticker.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-geom-Point.js"></script>
  
      <!-- We also provide hosted minified versions of all CreateJS libraries.
        http://code.createjs.com -->
  
      <script src="mobile-graphic-easel-examples-assets-Segment.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
      <script>
  
          var canvas;
          var stage;
          var rate;
          var isAutomate;
          var offset;
          var container;
          var body;
          var rightArm;
          var leftArm;
          var loader;
  
          function init() {
              if (window.top != window) {
                  document.getElementById("header").style.display = "none";
              }
  
              // create stage and point it to the canvas:
              canvas = document.getElementById("testCanvas");
              stage = new createjs.Stage(canvas);
              rate = 0;
              offset = 100;
  
              body = new Segment(120, 30, '#FFFF99');
              body.rotation = 90;
              body.y = -120;
  
              rightArm = new Segment(85, 25, '#FFFF99');
              rightArm.x = body.getPoint().x;
              rightArm.y = body.y;
              rightArm.rotation = 90;
  
              rightForeArm = new Segment(80, 20, '#FFFF99');
              rightForeArm.x = rightArm.getPoint().x;
              rightForeArm.y = rightArm.getPoint().y;
              rightForeArm.rotation = 90;
  
              leftArm = new Segment(85, 25, '#FFFF99');
              leftArm.x = body.getPoint().x;
              leftArm.y = body.y;
              leftArm.rotation = 90;
  
              leftForeArm = new Segment(80, 20, '#FFFF99');
              leftForeArm.x = rightArm.getPoint().x;
              leftForeArm.y = rightArm.getPoint().y;
              leftForeArm.rotation = 90;
  
              rightThigh = new Segment(95, 20, '#FFFF99');
              rightThigh.x = body.getPoint().x;
              rightThigh.y = body.getPoint().y;
              rightThigh.rotation = 90;
  
              right = new Segment(110, 30, '#FFFF99');
              right.x = rightThigh.getPoint().x;
              right.y = rightThigh.getPoint().y;
              right.rotation = 90;
  
              leftThigh = new Segment(95, 20, '#FFFF99');
              leftThigh.x = body.getPoint().x;
              leftThigh.y = body.getPoint().y;
              leftThigh.rotation = 90;
  
              rightFoot = new Segment(45, 40, '#FFFF99');
              rightFoot.x = right.getPoint().x;
              rightFoot.y = right.getPoint().y;
  
              left = new Segment(110, 30, '#FFFF99');
              left.x = leftThigh.getPoint().x;
              left.y = leftThigh.getPoint().y;
              left.rotation = 90;
  
              leftFoot = new Segment(45, 40, '#FFFF99');
              leftFoot.x = left.getPoint().x;
              leftFoot.y = left.getPoint().y;
  
              container = new createjs.Container();
              container.addChild(leftArm, leftForeArm, leftThigh, leftFoot, left, body, right, rightThigh, rightFoot, rightForeArm, rightArm);
              container.x = 275;
              container.y = 137;
  
              isAutomate = false;
  
              stage.addChild(container);
              stage.update();
  
              createjs.Ticker.addEventListener("tick", tick);
          }
  
          function stop() {
              createjs.Ticker.removeEventListener("tick", tick);
          }
  
          function move(segA, segB, segC, p_rate) {
              var angleA = Math.sin(p_rate) * 45 + 90;
              var angleB = Math.sin(p_rate + offset) * 45 + 45;
              var angleC = Math.sin(p_rate) * 90 - 50;
  
              segA.rotation = angleA;
              segB.rotation = segA.rotation + angleB;
              segC.rotation = segB.rotation + angleC;
  
              segB.x = segA.getPoint().x;
              segB.y = segA.getPoint().y;
  
              segC.x = segB.getPoint().x;
              segC.y = segB.getPoint().y;
          }
  
          function moveUpperBody(segA, segB, p_rate) {
              var angleA = Math.sin(p_rate) * 45 + 90;
              var angleB = Math.sin(p_rate + offset) * 45 - 35;
  
              segA.rotation = angleA;
              segB.rotation = segA.rotation + angleB;
  
              segB.x = segA.getPoint().x;
              segB.y = segA.getPoint().y;
          }
  
          function handleClick(event) {
              isAutomate = !isAutomate;
          }
  
          function tick(event) {
              rate += 0.1;
  
              move(rightThigh, right, rightFoot, rate);
              move(leftThigh, left, leftFoot, rate * 2);
  
              moveUpperBody(leftArm, leftForeArm, rate * 2.5);
              moveUpperBody(rightArm, rightForeArm, rate * 1.5);
  
              stage.update(event);
          }
  
      </script>
  </head>
  
  <body onload="init();">
  
  <header id="header" class="EaselJS">
      <h1><span class="text-product">Easel<strong>JS</strong></span> Segment Animation</h1>
  
      <p>A sample of display elements joined together in the display hierarchy.</p>
  </header>
  
  <div class="canvasHolder">
      <canvas id="testCanvas" width="960" height="400"></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.