问题标签 [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 回答
3713 浏览

javascript - Javascript 通过 ExternalInterface 闪烁

我想知道是否有人可以查看我的代码。我正在尝试使用以下代码将虚拟变量从 javascript 传递到 actionscript 3:

HTML:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="music_player" width="500" height="375"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="music_player.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="always" />
<embed src="music_player.swf" quality="high" bgcolor="#869ca7"
width="500" height="375" name="music_player" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>

Javascript:
var nextTrackLocation = "dummyString";
getFlashMovie("music_player").jsAlert(nextTrackLocation);

和动作脚本:
ExternalInterface.addCallback("getNextTrack", jsAlert);

有人看到错误吗?

0 投票
2 回答
766 浏览

flash - 带外部接口的图像

我需要使用外部接口(as3)将图片发送到闪存...不能是网址,因为没有连接...我正在尝试打开图像文件并像文本一样发送到闪存但没有成功

任何想法?

0 投票
1 回答
699 浏览

ajax - 在纯 Actionscript 3 项目中,是否有任何理由在 ExternalInterface 类上使用 Adob​​e 的 Ajax Bridge?

我正在 Adob​​e Flex 中编写一个纯 actionscript 3 应用程序。我希望我的应用程序可以在浏览器中使用脚本。似乎有两种选择:Adobe 的 Ajax Bridge(通常与使用 mxml 的 Flex 应用程序一起使用?)和 Adob​​e 的外部接口类 (flash.external.ExternalInterface)。是否有任何理由在 ExternalInterface 类上使用 Ajax Bridge?

谢谢你。

0 投票
6 回答
45084 浏览

javascript - 跨域外部接口“NPObject 上的错误调用方法”

我正在尝试通过跨域的 ExternalInterface 启用 Javascript 和 Flash 之间的通信。当 Javascript 位于与 SWF 相同的域中时,它的效果很好。但在一种情况下,HTML 位于域 A 上,javascript 和 flash 都位于域 B 上。我已完成以下所有操作:

  • 嵌入标签有allowScriptAccess="always"(并且对象有它作为参数)
  • 我的 SWF 文件的 actioncipt 有Security.allowDomain("*")
  • 我的 SWF 也调用Security.allowInsecureDomain("*")
  • 域 A 和域 B 都有一个/crossdomain.xml文件allow-access-from domain="*"

SWF 能够在页面上调用 javascript,但是当我使用 Javascript 调用 ExternalInterface 公开的函数时,我得到

在 NPObject 上调用方法时出错![插件异常:Actionscript 中的错误。使用 try/catch 块来查找错误。]

这是 ActionScript 2,因此ExternalInterface.marshallExceptions不可用。

0 投票
1 回答
1636 浏览

javascript - 没有 SWFObject.js 的 Javascript 到 Flash 通信

想知道是否可以在不使用 SWFobject 或任何其他额外的 javascript 文件的情况下从 javascript 到 flash 进行通信。

目前我正在使用以下指南: http: //www.viget.com/inspire/bi-directional-actionscript-javascript-communication

感谢您的时间。

0 投票
2 回答
1571 浏览

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

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

编辑:似乎在 IE 中它很简单

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

尽管如此,仍然无法在 Firefox 中确定这一点。

0 投票
3 回答
8676 浏览

javascript - 将数组从 Flash (AS3) 发送到 JavaScript

是否可以使用 ExternalInterface 调用将数组从 Flash (AS3) 发送到 JavaScript?

我目前正在从 Flash 内的“for each”循环中多次调用一个函数,但它的速度太快,JavaScript 无法跟上。

我的想法是创建一个属性数组,将其传递给 JavaScript 函数,然后在 JavaScript 中循环遍历它。

谢谢,乔什

0 投票
2 回答
860 浏览

javascript - 在 Flash/ActionScript3 中向外部接口添加回调时引用问题

我有一个方法:myMethod() {}我想让 javascript 可以访问。我做了一些研究,发现您需要向 ExernalInterface 添加回调,所以这就是我所做的:

现在,当我加载带有 flash 的网页时,出现错误:

ReferenceError:错误 #1065:未定义变量 myMethod。在 Main$cinit() 在 global$init()

myMethod 包含在 Main 类中......这是 Main.as 的外观:

我不知道如何ExernalInterface.addCallback实现它的myMethod存在......有人有什么想法吗?

谢谢,
马特

0 投票
3 回答
787 浏览

xml - 卡在交互式地图上

因此,我在 HTML/Flash 混合交互式地图的最后期限前开始着手处理,但它还远未完成。我不断接近解决每个问题,只是发现更多的错误。当您查看作品时,它们中的大多数都非常明显。我想至少消除大错误,所以我非常感谢任何建议。请帮忙!

基本上,我以两种方式使用工具提示:[0]通常基于 Flash 的 onMouseMove(工作正常),以及[1]非常规地从 HTML 列表中定位 Flash 电影中的一个点。工具提示很好,但由于地图通过 TweenLite 移动和缩放而出现在错误的位置。onMouseOver/onMouseOut 事件也存在错误,其中 onMouseOver 再次触发 onMouseOut,当它的 _alpha 为 0 时,工具提示仍然可见。

作品链接:http: //muralapts.com/test/neighborhood.php

----大问题 #1: HTML onMouseOver 再次触发 onMouseOut,有效地“重新打开”我的工具提示。当 Tooltip 不会消失时,看起来真的很糟糕。没有错误,因此我无法弄清楚为什么 onMouseOver 会触发两次。似乎是 HTML 问题,而不是 Flash 问题。

----大问题 #2:由于父剪辑使用 TweenLite 缩放和移动,从页面左侧的 HTML 列表触发的工具提示显示在错误的位置。工具提示附加到 _root,但“定位”几个容器剪辑中的一个点(路径未在下面指定)。我试图获得这样的工具提示位置:


互动地图详情:

  • XML 内容动态生成 HTML 和 Flash 地图数据(id、名称、链接、简介、类别编号[艺术、购物等] 、列表编号 [类别中的编号])。使用 Magic Parser 从 Flash 使用的同一 XML 文件呈现 HTML 输出。

  • HTML/Javascript 通过外部接口与自定义 AS2 地图组件对话

  • 地图最初放大到 140% 并使用 TweenLite 移动到某个点

  • Flash 影片中点的 onRollOver 显示带有地名的工具提示,更改点颜色

  • 放大/缩小按钮设置父剪辑 _xscale + _yscale 并使用 TweenLite onUpdate 录制

  • HTML 中列表的 onMouseOver 显示带有地图数据的工具提示,但位置错误,因为地图已使用 TWEENLITE 进行缩放和移动。使用 TweenLite onUpdate 记录父剪辑的比例 + 放置值。

  • 从 HTML 更改点的颜色在鼠标上起作用,在鼠标输出上是“粘性的”(点保持黑色)

XML CODE:(显示一个类别+列表,还有很多)

HTML 代码:

闪存代码:

0 投票
3 回答
1634 浏览

c# - 来自 ActionScript 3 ExternalInterface 的 OS 函数调用

在 AS3 中使用 ExternalInterface 是否可以在 XP 中调用 OS(C#?)函数?

示例:将桌面背景设置为 Flash 应用程序提供的图像?

如果可能的话,当应用于不同的操作系统时会是不同的调用。那么跨过Mac呢?

任何信息都会很棒

谢谢