我想通过ExternalInterface从as3代码本地调用js函数,而不是在远程服务器上。 所有浏览器都可以正常工作,但 Chrome 不行。 请注意,在 flash-debug 播放器版本(C:\Windows\system32\Macromed\Flash\NPSWF32_11_9_900_170.dll,版本 11,9,900,170)中,我已经在 Chrome 中安装了它。 但在默认的 Flash Player 版本(C:\Program Files\Google\Chrome\Application\33.0.1750.117\PepperFlash\pepflashplayer.dll,版本 12.0.0.70)中它不起作用。
PS:我也尝试打开我两年前开发的旧项目(使用ExternalInterface)->同样的问题。
IDE我用过-> FlashBuilder4.6,也在FlashDevelop中尝试过。 我正在使用 AC_OETags.js 以便将 swf 包含到网页中。
ExternalInterface.call("someFunc","testMsg") 在 swf 初始化时调用。
Chrome版本为33.0.1750.117 m
提前致谢。
最佳答案
这是 Chrome 中使用胡椒插件时出现的错误:https://code.google.com/p/chromium/issues/detail?id=137734
发生的情况是,未考虑受信任位置(此处设置: https://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html ),因此任何 Flash <-> JS 交互都会被破坏。
这个 bug 看起来并没有得到修复(从今天对该问题的评论来看,它很可能会被标记为“无法修复”),所以目前有 3 种方法它:
- 使用其他浏览器 - 不太理想
- 使用 NPAPI 插件 -pepper 插件是默认插件,但它主要是一种“设置一次就忘记”的任务
- 运行本地网络服务器 - 类似于 apache ( http://www.easyphp.org/ ) 或 Node ( http://nodejs.org/ )。这是 Google 处理此问题的首选方法,因为它更接近地模仿网络行为(包括安全内容)
关于javascript - Chrome 中的外部接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22151667/