2

我刚刚学习了如何使用 Flash Builder 分析 OpenLaszlo 应用程序。该讨论中提到的方法意味着 OpenLaszlo 应用程序被编译成一个 SWF 文件,并为 Flex 编译器启用了调试选项。然后可以使用 Flash Builder 分析生成的 SWF 文件。

如果我们可以使用 Flash Builder 调试器的全部功能来调试 OpenLaszlo SWF11 运行时应用程序,那将会更加强大。我正在专门寻找一种方法

  1. 能够在我的应用程序生成的 ActionScript 3 代码(交叉编译的 LZX 代码)中设置断点,并逐步执行代码。
  2. 能够单步执行 Laszlo 基础类的方法,尤其是SWF 运行时内核

由于 OpenLaszlo 编译器提供的错误消息并不总是那么有用,因此对于具有 ActionScript 3 知识的开发人员来说,能够直接单步执行 ActionScript 代码、检查 Flash Builder 中的对象和变量会更有效。

为了实现这些目标,有必要

  1. 有一种方法可以从我的应用程序 LZX 代码中生成 ActionScript 3 代码。
  2. 可以访问生成的 ActionScript 3 代码,该代码用于编译 LFC SWC 库文件 $LPS_HOME/lps/includes/lfc/LFC11.swc。ActionScript 代码必须作为OpenLaszlo Subversion 构建过程的一部分生成。不幸的是,我不太了解构建过程,无法了解 LFC 的源代码是在哪里以及如何生成的。

有没有人能够调试和单步调试应用程序的 ActionScript3 代码和 LFC 类?

4

2 回答 2

1

两者都可以。检索生成的 OpenLaszlo 应用程序的 ActionScript3 源代码相对容易。当 OpenLaszlo 编译器编译 LZX 代码时,生成的应用程序 ActionScript 3 代码将写入 Java 临时文件夹。

将 SWF 运行时 LFC 类编译成 SWC 文件时也是如此。OpenLaszlo 源代码(在进行Subversion 构建时)包含一个用于编译 SWC 文件的 shell 脚本。如果您已签出代码,则可以在以下位置找到构建脚本

$LPS_HOME/WEB-INF/lps/lfc/

对于flex4.6分支,如果执行命令

cd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfc --runtime=swf11

您将在 Java 或系统临时文件夹中找到生成的 ActionScript 类,例如

/tmp/lzswf9/lzgen6382925936717905460/

在我的 Linux 系统上。如果在运行 shell 脚本之前清空 /tmp/lzswf9 文件夹,您应该只会看到一个子文件夹,该文件夹中以字母 lzgen* 开头,其中包含编译到 SWC 文件中的所有 ActionScript 类。

整个操作相对复杂,我很久以前创建了一个 JIRA,并建议应该为 LFC/内核 SWC 库文件的 ActionScript3 源代码提供 OpenLaszlo 服务器:http: //jira.openlaszlo.org/jira/浏览/LPP-9424

不幸的是,这从未实施过。

于 2012-08-16T15:27:11.370 回答
1

在 Github 上创建了一个项目,其中包含一个 Ant 构建脚本以及在 Windows 或 Mac 上使用 Flash Builder 4.6 分析和调试 OpenLaszlo 应用程序所需的文件。

下面是在分析器中运行的 OpenLaszlo 应用程序的屏幕截图:

在 Flash Builder 分析器中运行的 OpenLaszlo 应用程序

项目文件包含一个带有详细教程的 PDF,该教程展示了如何调试和分析 OpenLaszlo SWF11 运行时应用程序,包括 SWF11 LFC 类。这是标题为“使用 Flash Builder 分析 OpenLaszlo 应用程序”的文档的链接。

于 2012-09-04T15:03:48.127 回答