我知道已经有很多关于这个话题的问题,但是没有一个问题解决了我的问题,也许我只是遗漏了一些东西。
无论如何,这是交易。我有一个快乐的小html5游戏,播放一些音频和声音影响等,它适用于支持html5的每个浏览器。但是,那些不需要闪回的人。没什么大不了的?显然不是......我做了一个小型的SWF应该接受来自JS的mp3网址,然后获取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
谢谢!
答案 0 :(得分:1)
我知道这真的很老了,但我从来没有用jquery成功找到我的flash对象。最好使用getElementById。另外,几个月前我遇到一些现代浏览器的另一个疯狂的事情是我实际上需要告诉flash在通过ExternalInterface初始化任何回调后等待一帧。