Flex - AS3与MXML - 是否存在编译速度差异,以及mxml编译器如何工作?

时间:2009-09-24 17:18:50

标签: flex flash mxml

MXML是否编译为as3然后转换为flash字节码?另外,编译mxml与编译as3是否存在显着的性能损失?

3 个答案:

答案 0 :(得分:4)

是的,归结为AS3,大多数,可能所有MXML组件都只是AS3类的标签版本。

编译时没有原始差异,但是,因为MXML需要Flex框架,MXML项目需要更长的时间来编译。

所以......在某种程度上,MXML速度较慢,但​​并不是那么显着。

答案 1 :(得分:3)

这是对Jasconius的一点修正。

所有 MXML作为预编译器指令的一种形式生成一个Class。在运行最终编译器之前,mxmlc.exe会将其转换为一系列临时.as文件。实际上,您可以使用指令keep-generated-actionscript来查看编译器如何执行此操作。

因为这是一个两步过程,这意味着编译用MXML编写的东西总是需要更长的时间。但是,即使在较慢的机器和大型项目上,这也不会造成重大困难 - 真正的问题在于将所有内容转换为字节码。但是,这并非没有益处。

MXML语法的主要优点是它更易于阅读,更易于概念化,并且更容易调试。它还使分离表单和内容变得更加简单。任何时候你可能在编译过程中松动,你将在编程时获得十倍的回报。

答案 2 :(得分:0)

与纯AS3项目中的几个kbs相比,flex中的简单hello world应用程序的灵活性将超过100k。这是因为flex会在你的swf中编译很多依赖项。所以是的,所需的带宽会受到惩罚。

在将-keep添加到项目| properties | flex编译器中的其他编译器参数字段后编译一个简单的flex应用程序,然后检查源文件夹中名为generated的自动生成文件夹,以查看编译器生成。