`

Flex MXMLC 编译参数

    博客分类:
  • FLEX
 
阅读更多

了解一些MXMLC的一些参数,对于深入理解FLEX有着很好的帮助.-keep-generated-actionscript尤其实用.因为可以使用他查看MXML编译成AS的代码.照样对于了解生命周期, 
事件传递机制...有很大的帮助.对于Bindable关键字,在申明时,请思考是否有其他的变通解决方法,不要随意加上这个关键字.Bindable会为这个对象与之相关的部位生成大量的代码,对于 
复杂的组件来说,AS文件膨胀的比较可观. 
http://www.k-zone.cn/zblog/post/flex-compiler-parameter.html 

加入: 
-locale zh_CN -link-report=c:\flexws\Flex_web\FlexWeb_report.xml -load-externs=c:\flexws\MyLib\myLib_report.xml 
会使得module编译变小很多。 

【将SWF文件最优化】 

如果你查看一下主程序的SWF文件和模块(Module)的SWF文件的话,你会发现它们的大小差不多。这就说明,模块的SWF和主程序SWF中有很多同样的组件定义。 

Flash Player并不会保存元件(symbol)的副本。例如,如果主程序有一个Button组件而一个模块(Module)也有一个Button组件,Flash Player就不会从模块中加载Button了,因为它已经在主程序中有定义了。 

使用-link-report=report.xml编译主程序,这样会创建一个链接到主程序的包含所有元件信息的文件。然后在编译模块(Module)的时候会使用那个report.xml文件。 


程序代码mxmlc -load-externs=report.xml ChartModule.mxml 

当ChartModule被编译的时候,所有在report.xml文件中列出的元件将会在它的SWF中省略。当我不使用report.xml文件编译ChartModule.swf的时候,它的大小是202K。而当我使用report.xml文件的时候,SWF的大小只有68K。这大大减少了模块(Module)的加载时间。 

在文章的开始将到模块(Module)的时候,我提过接口有另一个作用。假设你没有使用接口而是在主程序中引用模块的类。当你运行link-report的时候,你的模块类将会出现在report.xml中。当你使用使用link-report编译模块(Module)的时候你的模块并不会包含在它自己的SWF中!起初这并不会成为一个问题,尽管主程序由于包含了模块的定义而变得很大。然而,当你更改你的模块的时候发生了什么才是重要的。如果你没有重新编译主程序,你主程序的SWF文件将会包含模块(Module)旧的定义——而不是你已经更改过的。 


程序代码mxmlc -link-report=report.xml Main.mxml 
mxmlc -load-externs=report.xml ChartModule.mxml 
// etc. 

如果你决定使用这个技术来减小模块(Module)的大小,那么就使用接口来确保终端用户使用的总是模块(Module)的最新版本。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics