使用 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 移动通信的主要内容,如果未能解决你的问题,请参考以下文章

Adobe AIR SDK 和 Flex SDK 的关系?

在Flex中执行XML转换

Flex / Air混淆[关闭]

从带有AIR SDK 3.9的Adobe Flex SDK 4.6迁移到带有AIR SDK 3.9的Apache Flex SDK 4.12.0

Flex / AIR - 它可以接收 SYSLOG 通知吗?

从 flex (air) 将文档与 OpenOffice 合并