使用Kinetic在画布上看不到sprite甚至rect?

时间:2012-12-09 05:57:36

标签: animation canvas sprite requirejs kineticjs

我正在使用requirejs加载Kinetic,我有一个简单的脚本来创建一个精灵并将其加载到画布上。它将sprite加载到一帧的默认空闲状态:

require(['libraries/kinetic'], function(Kinetic){

  console.log('Initializing....');

  var stage  = new Kinetic.Stage({
    container : 'canvas',
    width     : 578,
    height    : 200
  }),
  layer      = new Kinetic.Layer(),
  animations = {
    idleRight: [{
      x      : 343,
      y      : 2,
      width  : 26,
      height : 58
    }]
  },
  imageObj     = new Image();
  imageObj.src = '/assets/images/billy.png';

  imageObj.onload = function() {

    var billy = new Kinetic.Sprite({
      x          : 25,
      y          : 25,
      image      : imageObj,
      animation  : 'idleRight',
      animations : animations,
      frameRate  : 7
    });

    // add the shape to the layer
    layer.add(billy);

    // add the layer to the stage
    stage.add(layer);

    // start sprite animation
    billy.start();

    console.log('Done.');

  }; // .onload

}); // require

我正在使用一个shim配置要求,以便正确加载动力学:

requirejs.config({
    baseUrl: '/assets/js',
    shim: {
        'libraries/kinetic' : {
          exports : 'Kinetic'
        },
    }
});

无论我尝试什么,我都无法显示精灵/图像!任何帮助将不胜感激!

我正在使用谷歌的这张图片作为测试精灵:

http://www.nes-snes-sprites.com/ImagesSheet/SuperDoubleDragonSheet2.gif

1 个答案:

答案 0 :(得分:0)

使用domeReady requirejs模块结束,并按以下方式加载:

require(['libraries/require/domReady!',
        'libraries/kinetic'], function(document, Kinetic){... etc