创建水平spritesheet的js动画

时间:2017-08-17 00:39:48

标签: javascript createjs easeljs

我经历过的文档和样本只是在过时的文档中丢失了。显然没有最新版本的createjs的样本。

我需要平滑滚动水平spritesheet。因此,在新图像完全位于"窗口之前显示图像的中间位置。因此,页面中的位置不会仅移动单列水平spritesheet显示的内容。我们不会在我们向上和向下滚动的图像之间切换。

我最终知道这件事。

 this.sprite = new createjs.BitmapAnimation(spriteSheet); 

该行给出错误

  

不是构造函数

 this.sprite = createjs.BitmapAnimation(spriteSheet);

给出错误

  

不是功能

这是精灵表

https://github.com/nydehi/asp.net-mvc-example-invoicing-app/blob/master/screenshots/1.png

我现在正在这样做,没有错误,但没有显示任何内容。

<script type="text/javascript" src="createjs-2014.12.12.min.js"></script>
<script>
  function init() {
  var data = {
        images: ["1.png"],
        frames: {width:15, height:20},
        animations: {
            stand:0,
            run:[1,5],
            jump:[6,8,"run"]
        }
    };
    var spriteSheet = new createjs.SpriteSheet(data);
    var animation = new createjs.Sprite(spriteSheet, "run");
   var stage = new createjs.Stage("demoCanvas");
 stage.addChild(animation);
        animation.gotoAndPlay("run");   //walking from left to right
stage.update();
  }
</script>

2 个答案:

答案 0 :(得分:1)

您可能正在使用更新版本的CreateJS(版本0.8.2),该版本上不再有BitmapAnimation类。

Older versions(0.6.0)拥有它,但很可能被SpriteSheet类取代。

Check here for the most recent documentation

答案 1 :(得分:1)

之前关于BitmapAnimation很久以前被弃用的评论是对的。您更新的代码示例看起来不错。

我认为当内容发生变化时,您只是缺少更新阶段的内容。您的示例只有一次更新,但由于您的图像是使用字符串路径加载的,因此当您调用stage.update()时,它尚未就绪。

任何时候内容改变,你需要告诉舞台刷新。通常,这是在内容更改时或在不断使用Ticker时手动控制的。

createjs.Ticker.on("tick", function(event) { 
    // Other updates

    // Update the stage
    stage.update(event); 
});

// Or a handy shortcut if you don't need to do anything else on tick:
createjs.Ticker.on("tick", stage);