我正在使用JS和AS3来获取默认麦克风。下面是我的HTML代码
js在头上
$(document).ready(function(){ $("#setupMic").click(function() { try{ document.getElementById('test').setupMic(); } catch(err) { console.log(err.message); } }); });在div flashContent之后的js
var callback = function(e){ if(e.success) console.log("Loading Success"); else console.log("Loading Failed");}; var flashvars = {}; var params = {allowscriptaccess:"always"}; var attributes = {}; attributes.id = "test"; swfobject.embedSWF("test.swf", "flashContent", "220", "140", "10", false, flashvars, params, attributes, callback);我的AS3代码是
import flash.system.Security; import flash.external.ExternalInterface; var mic:Microphone; Security.allowDomain('*'); ExternalInterface.addCallback("setupMic", setupMic); function setupMic():void { mic = Microphone.getMicrophone(); mic.setLoopBack(true); }html在firefox中完美运行。但不是我的朋友mac上的chrome或safari。我错过了什么请帮助
答案 0 :(得分:0)
您可能有时间问题。 Flash Player需要一些时间来初始化ExternalInterface。如果尝试在domready上访问SWF,则Flash Player可能尚未完成初始化ExternalInterface,这意味着您的方法setupMic()可能尚未可用。
我建议查询SWF以查看它是否已完成加载。 LearnSWFObject.com上有一个例子:http://learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/