如何列出flash元素公开的可用回调

时间:2009-06-26 07:31:15

标签: javascript flash actionscript externalinterface

有没有办法查询嵌入式flash元素以确定可以通过JavaScript在其上执行的可用方法?

编辑: 似乎在IE中它就像

一样简单
for ( i in flashNode ) {
    alert(i);
}

经过多次点击后,他们将成为最后列举的成员之一。

但仍然无法在Firefox中确定这一点。

2 个答案:

答案 0 :(得分:3)

虽然可以通过枚举IE中的<object> DOM节点来获取回调,但它们与DOM节点的所有其他属性混合在一起,并且无法在不保留列表的情况下对它们进行progamatically区分。已知的属性,以比较它们,然后取两组的差异。

这种方法值得怀疑,因为属性可以任意添加到任何DOM节点。更糟糕的是,它只适用于IE。 Firefox(可能还有其他人)不会将回调作为<object> DOM节点的属性返回。

答案 1 :(得分:1)

我相信它在FF和其他浏览器中的工作方式相同,但您可能需要以不同于IE的方式获取对swf元素的引用。

IE将使用一个对象标签,通常带有id,而ff / safari / etc将使用embed标签,因为你不应该在两个元素上使用相同的id,所以人们通常使用name属性来代替在embed标签上的id属性。

如果你使用类似SWFObject的东西来嵌入你的swfs,那么你应该只得到一个或另一个(对象或嵌入),无论你写的是什么都会设置id属性与你指定的任何东西,所以你可以迭代在对象上。