1

我发现使用嵌入式脚本编写 MXML 类比尝试制作动作脚本文件要容易得多。

然而,我想知道使用 MXML 文件会产生什么样的开销——就文件大小而言。我并不是特别关心性能,但如果这是相关的,我会对任何发现感兴趣。

显然,我说的是具有布局的 UI 组件。MXML 更容易可视化和修改,但我也不清楚它到底编译了什么。我希望有一个可以忽略不计的差异。

4

2 回答 2

10

如果您要使用相同的功能,MXML 不会使您的 swf 变得更大。

影响大小的是使用 Flex SDK 及其组件。无论您是使用 MXML 还是 AS3 声明它们,您都在使用它们,并且它们的代码被构建到 swf 中。同样,如果您引用 Flex RSL,从而避免将 Flex 内容直接构建到您的 swf 中,则无论哪种方式,它的大小都是相同的。数据绑定确实创建了很多事件和侦听器,因此可能会导致一些膨胀,但不会比您使用 AS3 实用程序函数声明数据绑定机制更多。

由于 MXML 确实会生成中间 AS3 代码,因此它可能比您自己编写的更冗长,因此您可以从中看到一些额外的大小。要查看它(这有助于总体理解),您可以使用编译器指令查看以保留生成的代码。

来自:http ://www.flashguru.co.uk/flex-2-compilation-hidden-goodies

  1. 右键单击导航器面板中的 Flex 项目。
  2. 从上下文菜单中选择属性。
  3. 在属性窗口中选择 Flex 编译器。
  4. 在“附加编译器参数”字段中输入 -keep-generated-actionscript。
  5. 单击“确定”以应用更改。
  6. 单击“运行”按钮构建您的 Flex 项目。
  7. 在导航器面板中再次右键单击您的 Flex 项目。
  8. 从上下文菜单中选择刷新。
  9. 导航器面板中的 Flex 项目下应该会出现一个新文件夹,名为“生成”</li>

一旦您开始调试和分析您的项目,这是一件好事,因为您可以真正看到编译器在哪里做正确(或错误)的事情。

于 2008-11-05T01:58:08.737 回答
0

包括 Flex 框架(无论是通过 MXML 还是纯 Actionscript)将显着增加最终 SWF 的大小。

我刚刚编写了一个由单个按钮组成的 Flash 电影。MXML 版本为 175K,而非 Flex Actionscript 版本为 2K。

虽然我自己并没有使用它,但这个项目似乎很有希望获得(一些)Flex 功能,而膨胀更少:

http://code.google.com/p/e4xu/

于 2009-11-16T21:54:09.237 回答