1

如何在Flex Builder 3 Pro中配置ActionScript 项目,以便可以将作为包一部分的 ActionScript 类编译成 swf。例如,我要编译为 swf 的类是:

package utils {
    import flash.display.Sprite;
    public class Tool extends Sprite {
        public function Tool() {

    }
}

采用如下目录结构:

RootASProject
-RootASProject.mxml
-subASProject1
--subSubASProject1a
---IASModule.as
---ASModule.as
---ASModule.swf
--subSubASProject2
-utils
--ITool.as
--Tool.as
--Tool.fla
--工具.swf

RootASProject 由一个开发人员制作,subASProject1 和 subSubASProject1a 由另一个开发人员制作,utils.Tool 由另一个人制作。这种目录结构使每个人都可以独立构建模块和其他资源,并快速测试整个产品。同样重要的是要注意这些资源是在运行时加载的。因此,类定义必须是完全限定的。例如,Tool.swf 包含/定义“utils.Tool”而不是“Tool”。

仅使用 Flash IDE 进行开发,这种目录结构是没有问题的。我们创建一个 Tool.fla 并将 utils.Tool 指定为它的文档类,然后在 Flash IDE 的发布设置中,我们将类路径设置为不是当前目录 (.),而是 RootASProject 目录。 如果将其设置为当前目录,则错误将是:在源路径中找到的文件必须具有与定义的包 'utils' 相同的包结构 ''。工具 Tool.as. 我们熟悉此错误消息,因此我认识到 Flex IDE 默认情况下会在当前目录中查找子文件夹 utils,以匹配打包的类。

在 Flex IDE 中,我可以将 utils 父级 RootASProject 添加为附加源路径,但我不知道如何阻止 flex 首先查看当前目录。

使用 ant 构建文件,我可以将源路径设置为 RootASProject,并且 mxmlc 能够很好地构建 utils/Tool.swf。显然,它只使用传递给它的源路径,并且不会自动在当前目录中查找 utils。

我知道问题是通过使用 Flash 或 Ant 解决的。Ant 甚至更适合大型和自动构建;但是,在快速调试期间,我真的很喜欢能够留在 Flex IDE 中使用其调试器逐步执行代码。

4

2 回答 2

1

您的编译错误与其用作文档类无关。您的目录结构需要与您的类中的包相匹配。简单的解决方案是创建一个名为“utils”的文件夹并将您的 Tool.as 移动到该文件夹​​中。

您所说的“文档”类是导出符号的基类。假设您的项目是一个 ActionScript 项目并且上面的类被标记为您的应用程序,那么它应该可以按预期工作。

于 2009-07-11T21:14:02.707 回答
0

如果您使用的是 Flex Builder 3 或更高版本,只需转到 File > New > ActionScript Project 创建一个新的 ActionScript 项目,然后将您的 ITool.as 文件指定为其中的主应用程序文件。

于 2009-10-27T21:02:13.640 回答