我找到了如何从 javascript 调用 actionscript,但我也需要传递一些参数(动态),我该怎么做?
TIA。
我找到了如何从 javascript 调用 actionscript,但我也需要传递一些参数(动态),我该怎么做?
TIA。
根据我的经验,您必须调用 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];
)
请试试这个:
ExternalInterface.addCallback("sendMsg", generateMsg);
function generateMsg(str):void {
trace(str);
}
JS:
msg = "";
function setMsg(myMsg) {
msg = myMsg;
SendDataToFlashMovie(myMsg);
}