Flex Air移动通信与JavaScript

3

我有一个教育应用程序,其中包括三个组件:Android通信引擎、Flex内容桥和Flash内容。现在我有一个任务,需要将Flash内容替换为HTML内容,该内容将通过JavaScript与Flex桥进行通信。我已经尝试了一周多,但是没有成功。


在不使用任何技巧的情况下,是否有可能在Air移动项目(编译为Android)中实现这一点?


你尝试过什么?使用StageWebView,你应该能够在移动AIR应用程序中显示HTML内容。我认为你与该内容进行交互的能力非常有限。 - JeffryHouser
是的,仅仅显示内容并不是问题。只是从 JavaScript 到 Flex 没有办法调用函数,并且还要传递参数。虽然有一种不太正规的方法让我解决了这个问题。稍后会发布答案。 - Harsh Vardhan
1
我遇到了同样的问题,你可以在这里找到一个不错的解决方法:http://sean.voisen.org/blog/2010/10/making-the-most-of-stagewebview/,但我希望有更好的方法来解决这个问题。 - Pieter Willaert
2个回答

2

正如Pieter所建议的,这篇文章对于那些想要从Flex中与Javascript通信的人来说是一份非常好的指南。但是由于链接可能会失效,让我在这里解释一下:

在Javascript中

document.location = '$' + 'Data#As#String';

在 Flex 中,

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");
}

由于目前还没有更好的解决方案,而且我怀疑也不会有,因此这个答案将获得悬赏。 - Pieter Willaert

0

我用Socket解决了我的(类似的)问题,现在我有了一个Java服务器,可以调用我的Air应用程序中的函数(用于自动化测试)。我想你也可以像这样解决你的问题。 如果需要,我可以发布一个小例子


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接