SoundManager2闪存组件需要在全局范围内存在特定的全局JavaScript变量(soundManager)。通过这种方式,flash player可以与SoundManager2 JavaScript API进行通信。
问题是,当你想使用AMD (require.js)构建你的web应用程序时,你必须做出妥协,并让这个全局变量存在。
有没有办法不打破AMD构建包括SoundManager在内的应用程序的方式?
发布于 2012-11-07 03:28:27
使用RequireJS AMD配置将非库包装为导出全局变量的模块:http://requirejs.org/docs/api.html#config-shim
requirejs.config({
paths: {
'soundmanager2' : 'some/path/soundmanager2'
},
shim: {
'soundmanager2': {
exports: 'soundManager'
}
}
});然后,像其他依赖项一样需要SoundManager2填充程序,并在您自己的模块代码中使用它:
define(['soundmanager2'], function(soundManager) {
soundManager.setup({ ... });
soundManager.beginDelayedInit();
// The following may help Flash see the global.
window.soundManager = soundManager;
return soundManager;
});https://stackoverflow.com/questions/12404023
复制相似问题