flex自定义组件用MXML?还是AS?
先说说为什么要在FLEX Application中Custom component,据我个人总结有以下三点好处:
一是可以扩展一些你想要的功能;
二是可以提高Application的重用性;
三是可以让Application更加模块化.
其中,我觉得这三点都是非常重要的,但我觉得最重要的还是第三点,因为一个Flex Application通常只有一个主页面(就是一个包含<mx:Application> tag的页面),如果我们是一个team那么同时对一个文件操作就太不方便了,而且这个页面的Size和complex程序也会可想而知,所以Adobe建议通过Custome Component来将一个Application划分成多个Module从而达到方便分工,和更好维护以及Debug.在自定义组件方面,ADOBE为我们提供了非常人性化考虑,熟悉一点儿FlexBuilder的朋友都知道.这里就不多说FB了.
ADOBE为我们提供了两种主要的方式来Custom component,一种是MXML方式一种是AS硬编码,两种方式Custom component都非常简洁,但是在具体的项目中,争对不同的需求和问题,还是的好好权衡一下使用哪一种方式更快,成本更低.看了下ADOBE官方的文档,有如下七点可以供大家参考.
一:无论你用MXML还是AS方式,其实都是用AS,因为MXML最后也编译成了AS;所以我觉得这里效率上AS是不是要优于MXML呢?希望有高人指点小弟.
二:在AS能做的事情,MXML基本上也能做到,但是如果你自定义的组件很简单,用MXML来得更快.
三:当你自定义的组件是一个复合式组件时(也就是说,自定义组件中包含自定义组件),MXML能很方便地通过布局面板确定各组件的层次和位置.AS只能人工去找了.
四:当你要修改组件的行为时,只能用AS;
五:当你要创建一个直接继承UIComponent的子类时,只能用AS;
六:当你要创建非可视化组件时,比如Formatter,validator,Effect....时,只能用AS;
七:要为组件添加日志功能时,只能用AS.
看了已上七点,用MXML还是AS你心里有数了吧