我知道已经有很多关于这个话题的问题,但没有一个能解决我的问题,也许我只是错过了一些东西。
无论如何,这是交易。我有一个快乐的 html5 小游戏,它可以播放一些音频和声音效果等,它在每个支持 html5 的浏览器中都运行良好。但是,那些不需要闪退的。没什么大不了的吧?显然不是……我制作了一个小的 swf,它应该接受来自 JS 的 mp3 url,然后获取 mp3 并播放它。我必须使用这种方式,因为有很多音频文件,我想尽量避免为每个文件制作一个 swf 文件。
这是 AS - 我正在使用 ExternalInterface 从 js 接收变量。
import flash.external.*;
ExternalInterface.addCallback("callFlash", playSound);
function playSound(file:String):void {
var s:Sound = new Sound();
s.load(new URLRequest(file));
s.play();
}
然后我的 JS 传递变量:
var flash = $('#fbplayer')[0];
console.log(flash); //returns flash object so jquery is not the issue
flash.callFlash(fallSource);
所以理论上一切都应该正常工作(如果我正确理解 ExternalInterface)。但是,会引发以下错误:
TypeError: flash.callFlash is not a function
flash.callFlash(fallSource);
我似乎找不到问题出在哪里。我愿意接受任何答案,甚至是完全不同的方式。只要它起作用,就可以阻止项目的交付:C
谢谢!