我很好奇Flash对象是否可以访问嵌入它的文档的DOM。
答案 0 :(得分:7)
是的,通过ExternalInterface类。
您可以在Flash电影中调用Javascript,并获取有关您心愿的页面的任何公开信息。
<强>附录强>
一年半以后,我决定添加一些例子:
假设您的客户端页面上有一个JS函数,如下所示:
function foo(bar,type) {
// do something with bar and type
}
你可以从Flash(使用AS3)中调用它,如下所示:
ExternalInterface.call(foo, bar, type);
请注意,函数名称是第一个对象,之后按顺序列出参数。
要将Flash影片的方法暴露给Javascript外部,您可以在Flash或Flex(再次,AS3)中执行此操作:
application1_applicationCompleteHandler(event:Event) {
// the app has finished loading, so do whatever we
// have to do on load, plus add that callback
ExternalInterface.addCallback(foo, bar);
}
public function bar(arg1, arg2) : void {
// do something with arg1 and arg2
}
在页面上的Javascript中,您可以像这样调用它(其中myMovie是SWF的ID):
myMovie.foo(anArg, anotherArg);
在addCallback
方法中,第一个参数是函数的外部名称,第二个参数是将被调用的闭包。
答案 1 :(得分:4)
答案 2 :(得分:3)
我不知道,但他们可以在包含文档中执行javascript,显然可以访问DOM本身。