你如何从 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 的事件