我正在开发一个使用闪存套接字的聊天应用。我不想在flash中编写整个界面,所以我希望只使用flash与socketserver通信并调用js来修改dom。
可以这样做吗?
答案 0 :(得分:9)
要从Flash调用JavaScript函数,请使用ActionScript中的ExternalInterface.call
函数:
import flash.external.ExternalInterface;
// Call a JavaScript function
ExternalInterface.call("your_javascript_function");
// Get a return value from a JavaScript function
var x:int = ExternalInterface.call("get_x");
// Pass an argument to a JavaScript function
var retval:int = ExternalInterface.call("some_js_function", "the-argument");
要从JavaScript调用ActionScript函数,首先使用ActionScript中的ExternalInterface.addCallback
函数:
// "methodName" is the method to call in JavaScript
// instanceObject.realMethod is the method that will be triggered
var successful = ExternalInterface.addCallback("methodName",
instanceObject,
realMethod);
然后,在JavaScript中获取SWFObject的句柄并按如下方式调用ActionScript方法:
function makeActionScriptCall() {
var flash = document.getElementById(movieName);
flash.methodName(parametersIfAny);
}
有关详细信息,请参阅:
答案 1 :(得分:5)
使用ExternalInterface对象让您的ActionScript能够调用JavaScript函数,反之亦然。