捕获对不存在的函数的ExternalInterface调用

时间:2012-09-25 16:10:15

标签: javascript actionscript-3

我有大约1000个SWF文件都通过ExternalInterface调用JavaScript函数。

我无法访问这些文件源文件,也无法编辑它们。

我的基本问题是他们都在调用不同的函数,Flash AS3脚本会挂起,直到它从函数中获得响应。

我希望做的是检测从JavaScript中的SWF文件中调用的函数,然后动态创建函数,但是,为了做到这一点,我需要检测首先调用的函数

有没有办法在JavaScript中执行此操作?

3 个答案:

答案 0 :(得分:0)

不,这在JavaScript中是不可能的。

答案 1 :(得分:0)

  1. 我不知道有多少变化,但是可以选择在几个swf上使用反编译器来查看调用哪些ExternalInterface调用?试试在线反编译器http://www.showmycode.com/

  2. 您可以使用UncaughtErrorEvent从Flash捕获未定义的错误 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/UncaughtErrorEvent.html

  3. 我不知道javascript是否会抛出错误?您也可以使用window.onerror从javascript中捕获错误 https://developer.mozilla.org/en-US/docs/DOM/window.onerror

答案 2 :(得分:-1)

您能解释一下您对SWF文件的控制程度以及您希望实现的目标是什么?

这些AS2是AS3吗? 是否有加载这些SWF文件的主SWF文件?

我正在查看文档,似乎将ExternalInterface.marshallExceptionsUnhandledErrorEvent结合使用,您可能会检测到Flash端未发生的函数调用。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html#marshallExceptions