问题标签 [externalinterface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6413 浏览

flash - 外部接口不可用

我在 FlashDevelop 中测试一个程序,它使用 Flash player 10。需要 externalInterface 才能工作,但是在运行这个简单的测试程序时,它显示“ExternalInterface is not available”。这里可能有什么问题?如何让 ExternalInterface 工作?

Ps - 顺便说一句,当我在浏览器中运行此脚本时,它会显示“外部接口可用”。只有当我在 Flash Player 10 中运行它时,它才可用。

0 投票
2 回答
14031 浏览

javascript - Flash AS2.0 与 JavaScript/jQuery (ExternalInterface) 通信

我尝试使用 JS 通过 ExternalInterface 将数据发送到我的 Flash AS2.0 音乐播放器,但我找不到关于 ExternalInterface 的好的教程或指南。我希望能够通过单击 JavaScript 链接来更改播放器中的当前歌曲,并在页面/窗口加载而不单击时播放默认歌曲。

我不需要关于在 Flash 中加载声音等的超级复杂的答案,我只是在让 JS 向 Flash 发送任何东西时遇到了很多困难,当我让它工作时——我需要把一些 if / else 放入flash 判断链接是否被点击?

谢谢

编辑继承人现在的代码:

作为 2.0

JavaScript

HTML

0 投票
5 回答
2280 浏览

javascript - 在 Javascript 中获取 ExternalInterface 定义

有没有办法从 Flash 对象中获取公开函数的列表?例如,您可以通过执行以下命令获取对象中所有方法的列表:

唯一的问题是这不会公开通过 ExternalInterfaces API 注册的任何方法。我可以尝试查看该函数是否存在 ( object['method']),它告诉我它是一个函数,但我必须以这种方式猜测每个现有方法。

注意:显然,我无权访问动作脚本。

0 投票
1 回答
7500 浏览

actionscript-3 - Actionscript 3 ExternalInterface,将变量传递给javascript?

我将如何使用 ExternalInterface 将变量传递给 javascript 函数?

0 投票
1 回答
2254 浏览

javascript - 如何将 Flex 的 ExternalInterface 与 IFrame 一起使用?

我有一个简单的 html 文档,其中包含一个 flex 应用程序和一个并排的 iframe(使用 1x2 表)。

flex 应用程序中有一个按钮,单击该按钮时,通过使用 ExnternalInterface.call 方法调用 javascript 函数“doNavClick(url)”将 iframe 的“src”属性设置为 URL。

或者这就是想法。

当我在 html 中注释掉 iframe 对象声明时,对 doNavClick 的调用有效(我弹出一个警报进行测试)......但是当 iframe 声明存在时,它甚至没有收到调用。就好像 iframe 以某种方式破坏了呼叫调度机制。

有解决方法吗?

有问题的代码如下:

--- 主要.mxml


...以及包含 swf 应用程序的 html/JavaScript 代码:

--- index.html


此代码将简单地弹出一个带有 google url 的浏览器警报。如果取消注释 iframe 声明(id 为“htmlFrame”)并重新加载页面,则不会显示警报,事实上,JavaScript doNavClick(url) 永远不会被调用。

更新:有趣....当我检查 index.html 的 DOM(我为此使用 firebug)时,主体通常有两个子节点 - 表和脚本。当 iframe 声明存在时,脚本子项消失......这解释了为什么我的 ExternalInterface.call 永远不会去任何地方。为什么包含 iframe 会导致我的脚本对象被删除?

UPDATE2:将 doNavScript(url) 脚本移动到文档的“头部”可以解决此问题。就好像 iframe 声明阻止任何其他孩子成为身体的一部分......我并不是说这是实际发生的事情,只是这似乎是症状。

0 投票
2 回答
1767 浏览

javascript - 将字节字符串返回到 ExternalInterface.call 会引发错误

我正在开发我的开源项目Downloadify,到目前为止,它只是处理返回字符串以响应ExternalInterface.call命令。

我正在尝试使用JSZip和 Downloadify 组合一个测试用例,最终结果是在浏览器中动态创建一个 Zip 文件,然后使用FileReference.save. 但是,这是我的问题:

JSZip 库可以返回base64Zip 的编码字符串或原始字节字符串。问题是,如果我返回该字节字符串以响应ExternalInterface.call命令,我会收到此错误:

动作脚本 3:

wherequeue_name只是一个字符串,用于在 JS 中识别正确的实例。

JavaScript:

如果我改为返回普通字符串而不是字节字符串,则调用可以正常工作。我想避免使用base64,因为我必须在其中包含一个base64解码器,swf这会增加它的大小。

最后:我不是在寻找 AS3 Zip 生成器。我的项目必须让该部分在 JavaScript 中运行

诚然,我不是一名 AS3 程序员,所以如果您需要更多详细信息,请告诉我。

0 投票
2 回答
1770 浏览

c# - C# Flash - 外部接口

我们在 WinForms 应用程序中托管 ActiveX 控件以嵌入 Flash。

有没有一种好方法可以获取可用于任何给定 swf 文件的可见 ExternalInterface 函数列表?

我们正在使用第 3 方 swf 文件,并且无法访问源代码。

如果 C#(或代码)无法实现,是否有工具可以做到这一点?

回答: 我发现的唯一方法是使用 Flash 反编译器,然后查找以下行:

我将最佳答案标记为帮助的答案。

0 投票
1 回答
2582 浏览

flash - 在 as2 中闪烁外部 ExternalInterface 调用

我有一个外部接口调用,它应该从嵌入 swf 的 html 中检索一些文本。

当我将变量名放入文本框中时,我得到了正确的文本。

当我将 geturl 与 clickTag 一起使用时,在某些情况下它可以工作(未编码的 clickTag url)。有时它是未定义的(编码的 clickTag 网址)。如果我使用name.toString它,它会打开http://www.someurl.com/[type%20Function]或显示[type%20Function]在文本框中。

所以我怀疑我在传递 clickTag url 时遇到了编码问题。我的问题是,如何将此对象转换为字符串或将对象的内容分配给字符串变量以避免这一切?

谢谢

0 投票
1 回答
835 浏览

flash - Flash JSFL ExternalInterface 问题

我无法从 JSFL 调用 SWFPanel 以通过 ExternalInterface API 工作。我正在按照此处的说明进行操作,如下所示:

在 SWF 面板中,在场景 1 动作 1 中,我使用 ExternalInterface 注册了一个回调函数:

然后在我的 JSFL 中,我遍历 swf 面板以定位 swf 面板,然后调用 appendTrace 方法,如下所示:

调用了该行myPanel.call("appendTrace", traceString);,但没有跟踪、附加任何内容,也没有引发任何错误,因此看起来 ExternalInterface 没有调用 appendTrace 方法。似乎一切都设置正确,但尝试了几件事,但它不起作用。这种方法有哪些常见的陷阱?

0 投票
4 回答
2765 浏览

javascript - 为什么我不能让 Javascript 与 ActionScript 对话

我有一个非常简单的播放音乐的 Flash 程序。它由一个播放暂停按钮和一个显示歌曲当前位置的计时器组成。我正在尝试使用常规表单按钮来暂停或播放歌曲。

这是我在该部分中放置的 Javascript 函数:

最后是我正在使用的按钮:

当我单击按钮时,Firefox 的错误控制台显示“Flash 为空”我做错了什么?