[转] 本人用Flash AS3.0写的七个原因

http://bbs.9ria.com/viewthread.php?tid=73635&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D2592000

关于把Flex组件从MXML转移到AS为基础 好像有不同的意见。这篇文章本来是要教读者Flex组件寿命周期的;不过现在还是从简单的MXML组件开始讲,然后把它转化成AS3组件,每个代码变化都介绍了组件生命周期里的元素。
我必须承认,我从来不想挑衅评论里的反AS3情绪。在创建Flex程序的时候MXML和AS各有功用。我发现MXML对于排版是不错的,而感觉AS更”帅”些,可以通过代码拥有更多控制权。而MXML经常把代码如何以及何时执行这些细节给掩盖了。Adobe工程师们做出把Flex框架完全建立在AS上这个决定也无疑是出于这个原因。
我不是很确定如何表达我的专业AS想法,所以我拉了帮推特的朋友们帮我表达好这些想法。这里有5个原因阐述我为何偏好AS。
1.        构造函数:在MXML你不能创建构造函数方法。用于监听框架周期内的事件时这个东西很有用。这个预初始化的事件最适合用来监听了,虽然在我的经验里creationComplete更常用些。
2.        MXML会转化成AS3:MXML会被Flex编译成AS3。你可以通过特别的解释参数-keep-generated-actionscript查看生成文件。看看这些代码;你会奇怪为什么它会如此复杂。如果你从开始就用AS3写,组件就不用经过转换。我发现从开始就用AS3写的代码更干净。
3.        执行顺序更清晰:MXML可以让排版更快更简单,但它经常掩盖了实际运行的东西。在MXML,你可以根据像属性一样的MXML标签指定属性,风格和事件监听器。什么时候设置属性?什么时候设置风格?什么时候创建事件监听器?什么时候创建容器内容物?MXML掩盖了细节;AS不会。
4.        除错更简单:你是否试过用Flex Debugger来仔细查找MXML某行上你不知道的一个错误?这可能很令人沮丧,因为你不知道你到底该更新一个属性,更换一个风格还是应该去除一个事件。而用AS不会出现这种情况。
5.        轻便性:MXML代码要绑定Flex解释器,而AS3代码易携带而且能用在其他地方,比如Flash Professional。甚至Flex框架可以不依赖Flex解释器,虽然你必须带在身上来初始化合适的管理器。有些帖子是关于这些的 假以时日,我希望Adobe能让使用其他的IDE分享Flex框架组件变得更容易;这样就能独立于Flex解释器之外。
6.        ASDocs:在Flex 2和3里,MXML不支持ASDocs。如果你为较早的框架写代码,你就不能通过这个强力工具来利用你的API。Flex4增加了ASDoc对MMXL文件的支持;不过如果你还没把你的程序升级到Flex4的话,这个限制仍在。
7.        表现:MXML可能导致容器的滥用;我在很多应用里看到。某些Flex容器可能会拖慢排版进度,特别是当他们从继承链继承了所有排版逻辑之后。太多嵌套的容器会引发表现上的问题。有时候你不是总是需要使用那些容器;而你可以创建一个更简洁的使用。Flex 4 的spark风格 以从容器剥离封装的排版逻辑分成多个排版元素。有时可以外接UIComponent然后你自己用更有效率的代码来缩放和定位元素。
我不打算把这帖子写成反MXML贴。它有它的优势可以令你迅速上手。前帖评论里反对使用AS3的最大论点是相比较下MXML更易于长期维护。在某些案例里我同意这个观点;不过我不认为那个说法总是成立。作为程序员,参考所有方式然后选出恰好符合给定的时间,预算和项目目标的那个(方式)是我们的工作。

你可能感兴趣的:(框架,Flex,Flash,Adobe,actionscript)