【问题标题】:Executing JavaScript in Adobe Flex without using Browser Control在 Adob​​e Flex 中执行 JavaScript 而不使用浏览器控件
【发布时间】:2012-01-03 12:26:51
【问题描述】:

我想向我的 Adob​​e Flex 应用程序添加脚本功能。我知道可以使用 Browser 控件,并将打包为 HTML 文件的脚本添加到 Browser 控件,并公开 Flex 对象。但是,我想是否可以在不使用浏览器控件的情况下执行 JavaScript。

更新:我想我的问题还不够清楚。我会解释我要做什么。

我想使用 JavaScript 使我的应用程序可定制,即动态地将脚本/插件添加到我的应用程序中。 我意识到可以通过将 JS 代码插入 HTMLLoader 控件来动态执行 Javascript。我想知道有一种直接的方式来执行 JavaScript 而无需将其插入 HTMLLoader 控件。

【问题讨论】:

  • 请说得更清楚。你说的是网络应用还是 AIR 应用?
  • 这是一个 AIR 桌面应用程序,我想在其中添加脚本功能。我想不使用 HTML 控件。

标签: javascript apache-flex adobe


【解决方案1】:

如果您在 Web 应用程序中,那么以下应该可以工作

var retval:int = ExternalInterface.call("myfunction", "arg1","arg2");

您也可以使用 URLRequest 来完成此操作

var req:URLRequest = new URLRequest("javascript:myfunction()");
navigateToURL(req,'_self');

如果你在一个 AIR 应用程序中,这样的东西应该可以工作

var html:HTMLLoader = new HTMLLoader();
html.load(new URLRequest("...URL..."));
html.addEventListener(Event.COMPLETE, myeventhandler);

在事件处理程序中你可以这样做。

html.window.document.location =  "javascript:myfunction(arg1)";

【讨论】:

  • 这里,您实际上是在使用 HTML 控件。我想知道是否可以直接执行脚本。类似于 Mozilla 的 Rhino 项目 - mozilla.org/rhino.
【解决方案2】:

如果我理解您想要什么,您可以将您的 Javascript 代码添加到您的项目的 bin-debug 中的 {nameOfApplication}.html 中。

注意:使用这种方法,编译时javascript代码会一直消失。这是关于 HTML 包装器的。

【讨论】:

  • 对不起,这不是我想要的。我已经编辑了这个问题。希望现在更清楚了。
猜你喜欢
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多