嵌入式Flash对象可以访问其父文档的DOM吗?

时间:2010-03-18 20:12:23

标签: javascript flash dom

我很好奇Flash对象是否可以访问嵌入它的文档的DOM。

3 个答案:

答案 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本身。