代码之家  ›  专栏  ›  技术社区  ›  I. J. Kennedy ShankarSangoli

使用mxmlc从命令行编译actionscript

  •  18
  • I. J. Kennedy ShankarSangoli  · 技术社区  · 16 年前

    我有一个很小的actionscript“项目”,由两个文件组成,分别称为foo.as和bar.as。出于我不想进入的原因,我真的很想从命令行构建.swf,而不需要建立任何形式的正式项目。我使用过的每一个编译器都允许您这样做,但在我的一生中,我不知道如何强制MXML编译这两个文件并将它们链接到SWF中。

    天真地,我尝试

    MXMLC foo.as bar.as

    但我被告知只允许使用一个源文件。

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

    注意:我有两个文件而不是一个文件的唯一原因是每个文件只需要一个类。我试着把两个类都放在一个文件中,然后把其中一个类 private internal 但这些想法都没有奏效。我会欣喜若狂地发现我可以在一个文件中放入多个类(只有一个是公共的)。

    5 回复  |  直到 16 年前
        1
  •  23
  •   Adam Harte    15 年前

    这是一个由两部分组成的问题,所以我将分别回答这两个问题。

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

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

    这是一个非常好的 guide for using MXMLC command line 编译您的AS3项目。这篇文章有点过时,但资料还不错。他详细介绍了在使用命令行编译器时需要了解的内容,包括MXML选项、编写BAT脚本以及一些关于AS3的内容,如果您知道自己在做什么,那么您可能会跳过这些内容。

    在一个文件中有多个类

    AS3允许每个文件有一个类,加上您喜欢的“助手”类。它不支持像Java那样的受保护的和私有的类。帮助程序类仅在定义它们的文件中可见。

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

    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();
    }
    
        2
  •  2
  •   TheHippo    16 年前

    如果主文件/类需要/使用另一个文件的类,则另一个文件也将编译到SWF中。

        3
  •  2
  •   Juan Delgado    16 年前

    正如Hippo所说,编译器将自动编译到SWF中,通过代码使用的所有类,默认情况下它是递归的。

    你也可以阅读所有的 options the MXMLC compiler has .

        4
  •  0
  •   Luke Bayes    15 年前

    如果您对自动化该过程感兴趣,还可以使用 Project Sprouts 其中包含的内容比您所要求的要多得多,但确实能让您从终端启动构建和测试运行。

        5
  •  0
  •   Rimian    11 年前

    如果你在用 grunt 作为任务管理器(用于JS),您可以使用此插件:

    https://github.com/JamesMGreene/grunt-mxmlc

    设置配置选项,然后从命令行运行它:

    grunt.initConfig({
      mxmlc: {
        options: {
          // Task-specific options go here.
        },
        your_target: {
          // Target-specific file lists and/or options go here.
        },
      },
    })
    
    推荐文章