如何从AdobeAIR应用程序内的网页调用AS3代码
How to call AS3 code from a web page inside an Adobe AIR application?
我们有一个Adobe AIR应用程序,它有时会加载网页。在其中一个网页上有一个超链接。单击超链接时,我希望调用AS3函数。我知道点击超链接时如何调用JavaScript函数,但在JavaScript函数中,我该如何调用我的AS3函数?
在所有的例子中,我可以发现Flash是网页上的SWF,因此位于DOM元素中。因此,在代码示例中,他们在DOM元素上调用AS3函数,如:
function sendTextToAS3() {
var Txt = document.getElementById('htmlText').value;
var flash = document.getElementById("as3_js");
flash.sendTextFromJS(Txt);
document.getElementById('htmlText').value = "";
}
但在我的例子中,Flash不是DOM元素中的SWF,相反,Flash是整个Adobe Air应用程序,没有带SWF的DOM元素。那么,如果我不能通过DOM元素调用AS3函数,我该怎么调用它呢?
如果您使用mx:HTML
组件来显示html页面。然后,您可以使用以下方法从javascript调用as3函数:
-
在html页面中,定义回调函数:
var linkClicked = function () {}
-
在as3代码中,定义回调函数:
function linkClicked():void { // Your logic here }
-
在as3代码中,覆盖回调函数的定义:
// var html:HTML = new HTML(); // load page ... // when the page is loaded html.domWindow.linkClicked = linkClicked;
为了简单起见,javascript linkClicked
函数是在窗口对象上定义的。
现在,每次从javascript调用linkClicked
时,都会执行as3代码。
查看ExternalInterface API。请参阅以下文档中的示例:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html#includeExamplesSummary
相关文章:
- 如何在javascript中点击按钮重新加载网页,但在重新加载后调用函数
- 正在创建网页,并希望将外部链接调用为html和css
- 打开网页并自动调用OnClick功能
- 如何从电子邮件内容中调用具有隐藏参数的其他网页
- 可从网页调用的Bash脚本
- 如何从AdobeAIR应用程序内的网页调用AS3代码
- 从网页调用背景.js函数
- 如何从快速呈现的 ejs 网页调用 node.js 函数
- 从网页调用服务器端C++
- 从另一个网页调用数组
- 从网页调用计算机上安装的应用程序
- 如何从网页调用Firefox扩展中定义的JS函数
- 在新的多进程Firefox中从网页调用插件
- 使用Javascript从HTML网页调用Javascript
- 从网页调用phantomjs
- 从网页调用firefox扩展main.js中的函数
- 如何在html中使用onclick属性从另一个网页调用一个网页的javascript函数
- 如何从不同服务器上的用户界面(网页)调用一台服务器上的API
- 如何从我的aspx网页调用客户端机器上的获胜应用程序
- 在javascript中从网页调用MVC方法