使用requirejs amd shim加载soundmanager2,记录undefined

时间:2015-03-02 23:43:47

标签: javascript backbone.js requirejs amd soundmanager2

所以这里是我的main.js文件(为了清楚起见,我删除了所有其他脚本):

require.config({
    paths: {
        'soundmanager2': '../libs/soundmanager2/soundmanager2',
    },
    shim: {
        'soundmanager2': {
            'exports': 'soundManager'
        }
    }
});

然后我像这样加载库:

define(['jquery', 'underscore', 'backbone', 'utilities/events', 'utilities/helpers', 'soundmanager2'],

    function($, _, Backbone, events, h, soundManager){

        var TrackModel = Backbone.Model.extend({

            initialize: function() {

                console.log(soundManager);
            }
        });

        return TrackModel;
    }
);

正在下载脚本 - 但是当我记录soundManager时,我得到了未定义,没有其他错误。

有什么想法吗?害怕我错过了一些明显的东西..

2 个答案:

答案 0 :(得分:1)

我在源代码注释中找到了requirejs的用法,但是文档没有描述。这是一个例子。

define(['soundManager2'], function(SoundManager) {
    var sound = SoundManager.getInstance();
    sound.setup({
      useHTML5Audio: true,
      idPrefix: '',
      onready: function() {},
      ontimeout: function() {}
    });
    sound.beginDelayedInit();
})

enter image description here

答案 1 :(得分:0)

这是soundmanager2版本的一个问题 - 它已经出现了AMD,但出于某种原因我无法将其导出。我恢复到早期版本,使用垫片,并修复它!