使用 javascript 的 flex air 移动通信
Posted
技术标签:
【中文标题】使用 javascript 的 flex air 移动通信【英文标题】:flex air mobile communication with javascript 【发布时间】:2013-01-21 06:09:42 【问题描述】:我有一个教育应用程序,其中包含三个组件,即; android 通信引擎、flex 内容桥和 flash 内容。现在我的任务是用 html 内容替换 Flash 内容,HTML 内容将通过 javascript 与 flex bridge 通信。我已经尝试这个东西一个多星期了,但没有成功。 甚至有可能在没有任何黑客攻击的空中移动项目(为android编译)中实现这一目标吗?
【问题讨论】:
你试过什么?您应该能够使用 StageWebView 在移动 AIR 应用程序中显示 HTML 内容。我认为您与该内容交流的能力非常有限。 是的,只是显示内容没有问题。从 JavaScript 到 flex,似乎没有办法调用函数,也没有参数。虽然有点骇人听闻的方式让我很开心。稍后会发布答案。 我也遇到了同样的问题,你可以在这里找到一个不错的 hack:sean.voisen.org/blog/2010/10/making-the-most-of-stagewebview,但我希望有更好的方法来解决这个问题 【参考方案1】:正如 Pieter 所建议的那样,this 对于那些希望通过 Flex 使用 Javascript 进行交流的人来说是一个很好的选择。但由于链接可能会断开,让我在这里稍微解释一下:
在 JavaScript 中
document.location = '$' + 'Data#As#String';
在弹性中
webview.addEventListener( LocationChangeEvent.LOCATION_CHANGING,
handleLocationChanging );
function handleLocationChanging( event:LocationChangeEvent ):void
event.preventDefault();
//location parameter will have a absolute path of the .html file as a prefix
var strParameters:Array = (e.location as String).split("$");
trace(strParameters[1] + "Is the string received from Javascript");
【讨论】:
因为仍然没有更好的解决方案,我怀疑会有一个,这个答案正在获得赏金【参考方案2】:我使用 Sockets 解决了我的(类似)问题,现在我有一个 java 服务器,可以调用我的 air 应用程序中的函数(用于自动化测试目的) 我想你也可以像这样解决你的问题。 如果需要,我可以发布一个小例子
【讨论】:
以上是关于使用 javascript 的 flex air 移动通信的主要内容,如果未能解决你的问题,请参考以下文章
从带有AIR SDK 3.9的Adobe Flex SDK 4.6迁移到带有AIR SDK 3.9的Apache Flex SDK 4.12.0