0

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

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

我正在为 require 使用 shim 配置,以便正确加载动力学:

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

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

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

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

1 回答 1

0

最终使用了 domeReady requirejs 模块,并按如下方式加载它:

require(['libraries/require/domReady!',
        'libraries/kinetic'], function(document, Kinetic){... etc
于 2012-12-12T04:34:18.177 回答