你如何从 Flash 触发 javascript 函数?

Posted

技术标签:

【中文标题】你如何从 Flash 触发 javascript 函数?【英文标题】:How do you trigger javascript functions from flash? 【发布时间】:2010-09-15 11:58:55 【问题描述】:

如何在 flash 中使用 actionscript 触发 javascript 函数?

目标是从 Flash 电影中触发 jQuery 功能

【问题讨论】:

【参考方案1】:

看看ExternalInterface-Class。 来自 AS3 语言参考:

ExternalInterface 类是 外部 API,一个应用程序 编程接口,使 之间的直接沟通 ActionScript 和 Flash Player 容器——例如,一个 html 页面 使用 JavaScript。 Adobe 推荐 对所有人使用 ExternalInterface JavaScript-ActionScript 通信。

它的工作原理是这样的:

ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
ExternalInterface.call("sendToJavaScript", input.text);

您可以提交参数并接收回调...很酷,对吧? ;)

据我所知,它也适用于 AS2...

【讨论】:

您可能有错字,因为即使您是示例,也显示提交参数和接收回调【参考方案2】:

正如 Jochen 所说,ExternalInterface 是可行的方法,我可以确认它适用于 AS2。

如果您打算触发导航或任何影响 Flash 所在区域的操作,请不要直接从您从 Flash 调用的函数中执行此操作。 Flash 期望它调用的函数有一个返回值,如果函数完成时 Flash 对象不存在,则 Flash 插件将崩溃。

如果您需要导航或更改内容,您可以添加一个 setTimeout 调用(到您的 js 函数中)。这将创建一个新线程并为 flash 提供它期望的返回值。

【讨论】:

以上是关于你如何从 Flash 触发 javascript 函数?的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 使用AS3从Flash触发Javascript

如何使用 Javascript 捕获 Flash Player 的事件

如何从 javascript 调用 flash actionscript 回调方法?

Flash 和 javascript, 灯箱

CHANGE事件未从数字步进器(AS3,Flash)触发

如何将 javascript 函数从子 flash swf 文件插入 HTML 文档?