问题标签 [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 投票
1 回答
1086 浏览

swfobject - 使用外部 SWF 文件加载 SWF 时出现问题 - 使用 SWFObject 和 ExternalInterface

我在加载引用外部 SWF 文件的 SWF 时遇到问题...

如果 HTML 文件与使用以下代码的所有 SWF 位于同一文件夹中,则主 SWF 加载正常:

但是,一旦我将 HTML 文件从该文件夹移出到根文件夹并更新链接,它就无法正确加载 - 似乎外部 SWF 文件有问题。我确实让它成功地直接加载了一个外部 SWF 文件,但它在使用主 SWF 时遇到了问题。所有的 SWF 文件都在同一个文件夹中,所以我不知道为什么会出现问题。这是位于根文件夹中的 HTML 文件的代码:

页面上还有一个链接使用 ExternalInterface 调用 actionscript 中的函数,因此可能是导致问题的原因。链接的代码是:

任何帮助都会很棒,因为它真的让我感到困惑。

0 投票
1 回答
486 浏览

iphone - 是否可以使用外部附件框架在 iPhone UIWebView 中填充 HTML 表单字段数据?

我有一个 iPhone 应用程序,我想将远程提供的 HTML 表单加载到 UIWebView 中,然后在使用“外部附件框架”从外部附件获得数据时填充该表单。现在数据是手动输入的。建议的流程是:

  1. 获取包含表单的 HTML 页面并将其放入 UIWebView
  2. 当数据从外部附件可用时,填充表单字段
  3. 提交表格

当从外部附件检索到所有必需的数据时,是否可以通过将外部附件中的数据“注入”到 UIWebView 中来做到这一点?我似乎找不到任何关于如何使用外部附件框架来实现这一点的好例子。

0 投票
1 回答
239 浏览

flash - 当有人查看源代码时,有什么方法可以隐藏 swfobject 传递给 Flash 的变量?

我有一些使用 swfobject 嵌入的 Flash swf,我将一些变量传递给它们,例如用户 ID。如何防止人们阅读这些变量?如果有人查看嵌入 swfs 的 php 页面的源代码,他们可以看到所有正在传递给 flash 的变量。有没有办法隐藏这些变量?还有什么其他方法可以做到这一点?我考虑过设置一个 ExternalInterface 并调用一个 javascript 函数将变量传递给 Flash - 这会有效地隐藏我发送的数据吗?

谢谢

0 投票
8 回答
13773 浏览

javascript - 用 ExternalInterface.addCallback 注册的函数在 Javascript 中不可用

我正在开发一个需要在页面上调用一些 Javascript 并从中获取数据的 Flash 游戏。从 Flash 调用 Javascript 有效。从 Javascript 调用 Flash 函数(通常)不会。

我正在使用Gaia 框架

怎么了:

  1. 使用 SWFObject 加载 swf
  2. Flash 文件中有一个按钮。单击时,它用于ExternalInterface.call()调用 Javascript 函数。这行得通。
  3. Javascript 函数调用一个 Flash 函数,该函数使用ExternalInterface.addCallback().
  4. 有时,Javascript 会产生以下错误:TypeError: myFlash.testCallback is not a function.
  5. 当错误发生时,它会影响所有注册的函数addCallback()。Gaia 和它的一些包含的库使用addCallback(),并且从 Javascript 调用这些函数也会产生 TypeError。
  6. 在Flash中按下按钮之前等待很长时间并不能解决错误。
  7. 定期重试 FlashaddCallback()并不能解决错误
  8. 发生错误时,ExternalInterface.available = trueExternalInterface.objectID包含 Flash 嵌入对象的正确名称。
  9. 发生错误时,document.getElementById('myflashcontent')正确返回 Flash 嵌入对象。

编辑添加:

  • 此问题出现在 Firefox 3.6 中,但未出现在 Chrome 或 IE8 中。我没有尝试过旧的浏览器。
  • 我正在运行 Flash 播放器的调试版本。
  • 我的电话ExternalInterface.addCallback()被包裹在一个try...catch块中。发生 JS 错误时,不会触发catch块。这是一个无声的失败。
  • 在 webhost 上进行测试时会发生错误,swf 是从与其所在页面相同的服务器加载的。
  • 我设置allowScriptAccess = always
  • 设置flash.system.Security.allowDomain("mydomain")并不能修复错误。

从我的页面类:

我的Javascript:

0 投票
2 回答
10228 浏览

flash - 如何在 Flash AS3 中从 URL 获取/获取变量

所以我有一个 URL,我需要我的 Flash 电影从中提取变量:

示例链接:
http ://www.example.com/example_xml.php?aID=1234&bID=5678

我需要得到 aID 和投标号码。

我可以通过 ExternalInterface 将完整的 URL 转换为字符串

只是不确定如何操作字符串以获取 1234 和 5678 数字。

感谢任何提示、链接或帮助!

0 投票
5 回答
2121 浏览

javascript - 外部接口

嘿,所以我在让 ExternalInterface 工作时遇到了很多麻烦,这很奇怪,因为我经常使用它。

我希望这是我刚刚错过的东西,因为我已经看了太久了。

flash_ready 函数正确返回了 objectID,据我所知,其他一切都正常。

不幸的是,当我运行它时,我收到一个错误(因浏览器而异),告诉我 document.getElementById( ).test() 基本上<movename>不是一个有效的方法。

这是代码:

javascript:

嵌入 Html(生成):

AS3:

Swfobject 是通过谷歌代码包含的,并且闪存嵌入得很好,所以这不是问题。

我有一个非常相似的设置在另一台服务器上运行,但似乎无法让它在这台服务器上运行。这是一个 Hostgator 共享服务器。会不会是服务器的错?有人看到任何明显的语法问题吗?

提前致谢!

0 投票
3 回答
2361 浏览

jquery - Flash SWF 直到可见才初始化 - 我可以强制它们初始化吗?

我有一个应用程序需要在一系列行中渲染大约 100 个 Flash 图表(以及其他 DOM 内容),这些行在当前可见窗口之外垂直延伸很多倍 - 换句话说,用户必须向下滚动才能看到所有不同的图表。

此应用程序也是动态的,当用户更改 DOM(页面上的任何位置)中的值时,它需要同时将该更改传播到所有 Flash 图形。

所以我设置了所有的 externalInterface 回调,并小心地在非常重要的“flashIsReady”调用之前不让任何 JS 开始运行,并且......它工作得很好,直到我尝试用新数据 update() 现有的 swf。

这是行为: - 所有 swfs 加载(最初)在 IE/Fox = 好。- 用新内容更新 swfs 在 IE 中有效,但在 Fox 中无效 = 不好 - 用新内容更新 swfs 在 Fox 中有效 -- 仅当 -- 我向下滚动到页面底部,然后返回顶部 -- 之前 - - 我触发了更新()。

所以我开始追踪每次 swf 调用 JS 说“flash is ready”,我意识到,Firfox 只在 swf 变得可见时才渲染它们。老实说,这很好,实际上,我很确定 IE 也可以做到这一点。但问题在于,Firefox 不仅不初始化 swf,而且如果 swf 还不可见,Firefox 甚至都不承认 swf 存在(预计在 onload 之后)。

证明是你得到 JS 错误说:

“[FlashDOMID].FlashMethod 不是函数”。

但是,向下滚动一点,等到它可见,然后轨迹突然开始亮起

“Flash Ready”、“Flash Ready”、“Flash Ready”,一旦它们都准备好,一切正常。

有人告诉我,FF 在可见之前不会初始化 swf - 我可以强制吗?如果您需要,我可以发布代码......但它非常繁重(很难从其余部分中删除相关内容),如果可能的话,我想避免它(为了您的利益)。

问题很简单——你有没有遇到过这种情况,如果有,你找到解决方案了吗?有谁现在如何强制一个不可见的 swf 进行初始化?多谢你们。

0 投票
1 回答
3325 浏览

java - Flex/Flash 4 ExternalInterface.call - 尝试从 HTML 获取字符串到 Actionscript

我需要从 HTML 中获取一个字符串并将其放入 Actionscript。

动作脚本:

的JavaScript:

JSP:

呈现的 HTML:

当javascript执行命中时

返回 null 并崩溃,没有警报显示没有显示错误消息。我可以通过“用户名标签”(document.getElementById())成功地搜索firefox DOM Inspector

唯一弹出的警告框是动作脚本警告框,内容为空白。

firfox 3.5 windows,容器是Tomcat。

请多多指教,提前谢谢。

0 投票
1 回答
1132 浏览

javascript - 如何从 JavaScript 调用 FileReference.browse()?

我正在尝试从 JavaScript 调用 FileReference 类的 browse() 方法(用户单击使用 ExternalInterface 调用 Flash 中的方法的文本)。

不幸的是,我收到一个错误,告诉我它必须是用户的直接操作(例如单击按钮)。我通过 Google 搜索并意识到这是 Flash 10 中的一项新安全功能。

我能找到的唯一解决方案是在文本上放置一个 Flash 按钮或隐藏一个 Flash 按钮,这将调用 browse() 方法。

我希望浏览器只显示 JavaScript,并且所有的 Flash 代码只从 JavaScript 调用。

请问有什么办法可以做到吗?

非常感谢你,鲁迪

0 投票
1 回答
116 浏览

flash - IE 在使用 ExternalInterface.call 时弹出“对象不支持此属性或方法”

我在这里疯了。

每次我尝试做一个

(适用于每个浏览器)我得到一个

对象不支持此属性或方法

警报出现后。

它甚至发生在由 flash 生成的 HTML 中,而我没有触摸它……有什么解决方案吗?!

谢谢!