我发现使用嵌入式脚本编写 MXML 类比尝试制作动作脚本文件要容易得多。
然而,我想知道使用 MXML 文件会产生什么样的开销——就文件大小而言。我并不是特别关心性能,但如果这是相关的,我会对任何发现感兴趣。
显然,我说的是具有布局的 UI 组件。MXML 更容易可视化和修改,但我也不清楚它到底编译了什么。我希望有一个可以忽略不计的差异。
我发现使用嵌入式脚本编写 MXML 类比尝试制作动作脚本文件要容易得多。
然而,我想知道使用 MXML 文件会产生什么样的开销——就文件大小而言。我并不是特别关心性能,但如果这是相关的,我会对任何发现感兴趣。
显然,我说的是具有布局的 UI 组件。MXML 更容易可视化和修改,但我也不清楚它到底编译了什么。我希望有一个可以忽略不计的差异。
如果您要使用相同的功能,MXML 不会使您的 swf 变得更大。
影响大小的是使用 Flex SDK 及其组件。无论您是使用 MXML 还是 AS3 声明它们,您都在使用它们,并且它们的代码被构建到 swf 中。同样,如果您引用 Flex RSL,从而避免将 Flex 内容直接构建到您的 swf 中,则无论哪种方式,它的大小都是相同的。数据绑定确实创建了很多事件和侦听器,因此可能会导致一些膨胀,但不会比您使用 AS3 实用程序函数声明数据绑定机制更多。
由于 MXML 确实会生成中间 AS3 代码,因此它可能比您自己编写的更冗长,因此您可以从中看到一些额外的大小。要查看它(这有助于总体理解),您可以使用编译器指令查看以保留生成的代码。
来自:http ://www.flashguru.co.uk/flex-2-compilation-hidden-goodies
- 右键单击导航器面板中的 Flex 项目。
- 从上下文菜单中选择属性。
- 在属性窗口中选择 Flex 编译器。
- 在“附加编译器参数”字段中输入 -keep-generated-actionscript。
- 单击“确定”以应用更改。
- 单击“运行”按钮构建您的 Flex 项目。
- 在导航器面板中再次右键单击您的 Flex 项目。
- 从上下文菜单中选择刷新。
- 导航器面板中的 Flex 项目下应该会出现一个新文件夹,名为“生成”</li>
一旦您开始调试和分析您的项目,这是一件好事,因为您可以真正看到编译器在哪里做正确(或错误)的事情。
包括 Flex 框架(无论是通过 MXML 还是纯 Actionscript)将显着增加最终 SWF 的大小。
我刚刚编写了一个由单个按钮组成的 Flash 电影。MXML 版本为 175K,而非 Flex Actionscript 版本为 2K。
虽然我自己并没有使用它,但这个项目似乎很有希望获得(一些)Flex 功能,而膨胀更少: