是否可以使用mxmlc编译FLA?

时间:2015-07-13 21:36:33

标签: actionscript-3 flash mxmlc

让我先解释一下我先要做的事情。我正在研究一种新的基于AS3的架构,我试图解决过去AS2遇到的一些问题。每个屏幕都有自己的FLA,多个屏幕引用某些组件;例如Button。当Button中的某些内容发生变化时,就会出现此问题。使用Button的每个屏幕都必须重新发布,否则由于Flash类定义的工作方式,它有可能无法获取更改:加载的第一个Button定义运行时是一切都使用的。因此,如果使用旧Button的屏幕首先加载,那么一切都将使用旧的定义,事情将会中断。可能需要一个小时或更长时间来确定需要导出哪个FLA来修复它,因为它有很多并且它们之间的连接并不总是显而易见的。正如您所看到的,这是一个需要修复的主要时间接收器。

我已经了解到,在AS2中,您可以使用exclude.xml文件在发布FLA时从SWF中排除类定义。通过这种方式,我找到了一个我可以设置的架构,其中有一个Shell SWF,它是唯一定义Button类的地方。然后Shell加载所有排除了Button的其他屏幕,以便他们只选择Shell版本。这样可以确保Button中的任何内容发生更改时,唯一需要重新发布的内容是Shell,然后其他所有内容都会在运行时进行更改。

这一切都很好,除了使用AS3时,exclude.xml文件不再有效。因此,我转向MXMLC,它可以模拟exclude.xml功能,在编译-link-report SWF时使用Shell编译器选项构建exclude.xml,然后传递每隔一个屏幕上的-load-externs的XML,以排除Shell构建的所有内容。我发现这样做的唯一方法是将所有内容作为SWC从Flash发布,然后使用-include-libraries从SWC中构建SWF以及-load-externs以排除我不想要的所有内容&# 39;我想要在那里。除了作为SWC的发布不包括在时间轴上或更具体地说是舞台上定义的任何内容之外,这样做也很好。通过对不同部分进行分层并在ActionScript中引用的所有位置放入已命名的MovieClips,在Flash中的时间轴上完成了大量的设计工作,但是SWC并没有选择任何一个据我所知,这些信息。

所以现在我们来回答我的问题。有没有办法使用MXMLC编译FLA中的所有信息,以便我可以排除所有内容,同时仍然可以设计出时间轴/舞台上的所有内容?

1 个答案:

答案 0 :(得分:0)

我发了一封电子邮件给格兰特斯金纳,他基本上说他知道要做的唯一方法是用RS3或SWC排除。他不太确定哪种方法有效,因为已经很长时间了,所以我没有明确的答案。我花了一些时间试图用SWC来解决这个问题,但是我并没有真正得到任何不错的结果,所以我现在放弃了。

需要注意的重要部分是运行MXMLC以构建FLA确实是不可能的。或者至少如果有可能,它需要非常复杂的知识,而不是很多人都知道。