繁体   English   中英

使用MXMLC从命令行编译actionscript

[英]compiling actionscript from command line using MXMLC

我有一个由两个文件组成的小动作“项目”,称为foo.as和bar.as. 由于我不打算进入的原因,我真的很想从命令行构建.SWF,而不需要设置任何类型的正式项目。 我曾经使用的每一个编译器都允许你这样做,但是对于我的生活,我无法弄清楚如何强制MXMLC编译这两个文件并将它们链接到SWF中。

天真的,我试试

MXMLC foo.as bar.as

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

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

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

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

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

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

这是使用MXMLC命令行编译AS3项目的非常好的指南 文章有点陈旧,但信息仍然很好。 他详细介绍了使用命令行编译器时需要了解的事项,包括MXMLC选项,编写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();
}

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

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

您还可以阅读MXMLC编译器的所有选项

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

如果你使用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.
    },
  },
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM