我找到了如何从javascript调用actionscript,但我也需要传递一些参数(动态),我该怎么做?
TIA。
答案 0 :(得分:0)
请试试这个:
ExternalInterface.addCallback("sendMsg", generateMsg);
function generateMsg(str):void {
trace(str);
}
JS:
msg = "";
function setMsg(myMsg) {
msg = myMsg;
SendDataToFlashMovie(myMsg);
}
答案 1 :(得分:0)
根据我的经验,你必须在flash对象上调用该函数。
我使用以下javascript函数来获取flash对象
function GetSWF(id) {
if (window.document[id] != null)
if (window.document[id].length == null)
return window.document[id];
else
return window.document[id][1];
else
if (typeof(document[id]) == 'undefined')
return $('#'+id)[0];
else
if (document[id].length == null)
return document[id];
else
return document[id][1];
}
然后按如下方式调用该函数
var flash = GetSWF('idOfSWF');
if (typeof flash.sendToActionScript === 'function'){
flash.sendToActionScript(yourObject,orParameter);
}
AS3如下所示
if (ExternalInterface.available){
ExternalInterface.addCallback("sendToActionScript",receivedFromJavascript);
}
function receivedFromJavascript(myObject:Object,myParameter:String):void{
// Do something
}
希望这有帮助。
编辑:
注意到我在GetSWF函数中使用了一小部分jQuery。我会看看并尝试删除它。 (它的行return $('#'+id)[0];
)