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

我想知道在文件大小方面使用MXML文件会产生什么样的开销。我并不特别关注表现,但如果相关则会对任何发现感兴趣。

显然我在谈论具有布局的UI组件。 MXML更容易可视化和修改,但我不清楚它编译的确切内容。我希望有一个可以忽略不计的差异。

有帮助吗?

解决方案

如果你想使用相同的功能,MXML不会让你的swf更大。

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

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

  

来自: http://www.flashguru.co.uk /柔性-2-汇编隐藏-糖果

     
      
  1. 在导航器面板中右键单击Flex项目。
  2.   
  3. 从上下文菜单中选择“属性”。
  4.   
  5. 在“属性”窗口中选择“Flex编译器”。
  6.   
  7. 在‘附加编译器中输入-keep-generated-actionscript   参数’字段。
  8.   
  9. 点击‘确定’应用更改。
  10.   
  11. 单击“运行”按钮构建Flex项目。
  12.   
  13. 在导航器面板中再次右键单击Flex项目。
  14.   
  15. 从上下文菜单中选择“刷新”。
  16.   
  17. 导航器中的Flex项目下应显示一个新文件夹   面板,名为‘生成’
  18.   

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

其他提示

包含Flex框架(无论是通过MXML还是纯ActionScript)都会显着增加最终SWF的大小。

我刚刚写了一个由一个按钮组成的flash电影。 MXML版本为175K,而no-Flex Actionscript版本为2K。

虽然我自己并没有使用它,但是这个项目看起来很有希望获得(某些)Flex功能并且不那么膨胀:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top