我有一个由两个文件组成的小动作脚本“项目”,将它们称为foo.as和bar.as。由于我不愿讨论的原因,我真的很想从命令行构建.SWF,而无需建立任何形式的正式项目。我曾经使用过的每个编译器都可以做到这一点,但是对于我一生来说,我一直无法弄清楚如何强制MXMLC编译这两个文件并将它们链接到SWF中。

天真的,我尝试

MXMLC foo.as bar.as

但是我得知只允许一个源文件。

好的,假设我分别编译了这两个文件,如何将它们链接在一起以获得最终的SWF?

注意:我有两个文件而不是一个文件的唯一原因是每个文件只需要一个类。我尝试将这两个类都放在一个文件中,并把其中一个类设为privateinternal,但这些想法都没有用。我会欣喜地发现我可以在文件中放置多个类(只有一个是公共的)。

最佳答案

这是一个两部分的问题,因此我将分别回答。

将两个类文件编译为一个SWF

MXMLC将自动编译从您给它的入口点(您的主类)找到的所有类。它从您的导入语句和完整的类路径定义中查找类。

这是一个非常好的guide for using MXMLC command line来编译您的AS3项目。这篇文章有些陈旧,但信息仍然不错。他详细介绍了使用命令行编译器时需要了解的内容,包括MXMLC选项,编写BAT脚本以及一些有关AS3的知识,如果您知道自己在做什么,则可以略过。

一个文件中有多个类

AS3允许您每个文件具有一个类,并且可以根据需要添加尽可能多的“ helper”类。它不像Java那样支持受保护的私有类。助手类仅在它们定义的文件中可见。

Helper类位于包声明之外(这对我来说有点奇怪)。这是一个例子:

package com.mynamespace
{
     public class Foo
     {
          private var _fooHelper:FooHelper = new FooHelper();
     }
}

// helper class imports also go outside the package.
import com.example.xml.SaxHandler;
class FooHelper
{
     private var bar:Number = Math.random();
}

09-20 04:14