2013-04-14 42 views
1

我使用Flash Pro生成我的精灵表并使用EaselJS加载精灵。我注意到,如果我的精灵太大,它会从底部裁剪(即裁剪出手臂)。下面的代码演示了这一点:为什么我的精灵从底部裁剪?

<html> 
    <head> 
     <title>Example</title> 
     <script type="text/javascript" src="easeljs-0.6.0.min.js"></script> 
    </head> 

    <body> 
     <canvas id="canvas"> 
      HTML5 Canvas not supported 
     </canvas> 
     <script> 
      canvas = document.getElementById("canvas"); 
      stage = new createjs.Stage(canvas); 

      // create spritesheet and assign the associated data. 
      largeSS = new createjs.SpriteSheet({ 
       images: ["large.jpg"], 
       frames: [[0,0,221,200,0,0,0],[221,0,221,200,0,0,0],[0,200,221,200,0,0,0],[221,200,221,200,0,0,0]], 
       animations: { 
        talk: [0, 3, "talk", 7] 
       } 
      }); 

      bmpAnimation = new createjs.BitmapAnimation(largeSS); 
      bmpAnimation.gotoAndPlay("talk"); 
      stage.addChild(bmpAnimation); 
      createjs.Ticker.addListener(stage); 
     </script> 
    </body> 
</html> 

以下是我的large.jpg:

但是,如果我让我的小精灵的问题就解决了。下面我有完全相同的代码,但使用较小的帧尺寸和相同,但规模较小,精灵表:

<html> 
    <head> 
     <title>Example</title> 
     <script type="text/javascript" src="easeljs-0.6.0.min.js"></script> 
    </head> 

    <body> 
     <canvas id="canvas"> 
      HTML5 Canvas not supported 
     </canvas> 
     <script> 
      canvas = document.getElementById("canvas"); 
      stage = new createjs.Stage(canvas); 

      // create spritesheet and assign the associated data. 
      smallSS = new createjs.SpriteSheet({ 
       images: ["small.jpg"], 
       frames: [[0,0,100,91,0,0,0],[100,0,100,91,0,0,0],[0,91,100,91,0,0,0],[100,91,100,91,0,0,0]], 
       animations: { 
        talk: [0, 3, "talk", 7] 
       } 
      }); 

      bmpAnimation = new createjs.BitmapAnimation(largeSS); 
      bmpAnimation.gotoAndPlay("talk"); 
      stage.addChild(bmpAnimation); 
      createjs.Ticker.addListener(stage); 
     </script> 
    </body> 
</html> 

small.jpeg:

我真的很拉我的头发在这个问题上。有人可以向我解释为什么会发生这种情况吗?我究竟做错了什么?或者,有多大的精灵可以有限制?

谢谢。

回答

2

画布的默认大小比您的图片小 - 因此您的图片会被剪裁到该图片。 (Chrome是300x150)。将画布高度设置得更高,剩下的动画就会显示出来。

干杯!