InfoQ

新闻

ActionScript 3.0争论何时休?

作者 Moxie Zhang译者 沙晓兰 发布于 2008年10月5日 上午9时35分

社区
Java
主题
RIA

自从独立Flash平台专家——Colin Moock七月份在O’Reilly InsideRIA发表了一篇名为“The Charges against ActionScript 3.0”文章之后,Flash/Flex社区内的争论一时间硝烟四起。

“……很多Flash用户仍然对ActionScript 3.0中引入的一些工作流方面的变化望而生畏。这些改变本身真正存在问题的很少,但当他们集合到一起的时候,就对Flash用户典型的日常工作产生不可磨灭的影响。” Moock的这句话是引发整个争论的导火索。

Moock在文章中指出了9条对ActionScript 3.0的不满:

    1. Flash CS3去掉on()/onClipEvent()以后,即使是简单的交互都很难创建。
    2. 很难习惯没有加载的.swf文件。
    3. 向上溯型 DisplayObject.parent使得父对象的clips很难控制。
    4. 没有getURL()之后,连接比较困难。
    5. 没有loadMovie(),加载.swf文件和图像都不方便。
    6. ActionScript 3.0中其他一些错误导致编程非常麻烦。
    7. 动态指向类库符号一点都不直接。
    8. 向手动创建的文件域、所有影视片段、所有按钮添加定制功能很费时间。
    9. 去掉duplicateMovieClip()之后,复制MovieClip实例变得非常困难。

Moock针对上面列出的每条都做了深刻的解释,也提出了一些建议。Atlanta Flash Community的Leif Wells表示有同感,他说:“毫不夸张地说,在我们向社区成员展示一些ActionScript 3.0的代码的时候,就遇到一些成员因此浑身冒冷汗。他们现在大都对 Flash Player 10的特性比较感兴趣,但很多人目前为止还无法掌握这些特性。”

然而,andCulture的主管Francis Lukesh从另一个角度来审视Flash的改进。他说:

有的人从Macromedia收购FutureSplash之后就开始使用Flash;有的人除了有设计动画的背景以外还有编程经验。对于这些人,我赞同Adobe的决定,赞同他们在Flash中借助AS3来提供更具结构化的ActionScript实现。我想信,这一极具决策性的手笔能够把Flash打造成一个真正的RIA开发值得选择的平台。

说工具箱不能通过编写抽象的API来提供文章中提到的那些功能是毫无理由的。实际上,这样的工具箱能够帮助设计师、动画制作者在保留AS3完整构架的基础上提高他们的开发效率。

Exanimo的Matthew Tretter以开发者而不是设计者的身份表示不同意作者的观点:

通常,我对那些编程语言为了尽量让非程序员都能应用而所作的改变很麻木(相反,我觉得编程语言应该要尽量方便程序员的应用)。在你提出的那几点中,我觉得有些其实根本不是因为功能难用,只是跟之前不一样罢了。习惯了以前的某种用法,并不意味着这种用法就是直接的,或者说是简单轻巧的。有时候,那些习惯用法实际上反而很费力,就比如说这个on()构造。

Flex开发员Steve的意见似乎比较中庸,他说:“作为一个全职的AS3开发员,在Flex Builder这种‘奢侈‘工具的帮助下,我没怎么遇到文中提到的那些不便。但在使用Flash很多年以后,我完全理解这些忧虑。“

另一个Flash开发员John Isaacks说他已经把习惯改过来了:

我从版本4的时候开始使用Flash(编程、制作动画)。ActionScript是我学习的第一门编程语言。在ActionScript 3刚推出的时候,我感到非常恐惧,主要是因为在新建一个flash文件,以之前习惯的方式编写代码的时候,我得到的却是很多错误提示。

……现在,我比此前任何时候都理解ActionScript。我也觉得AS3在很多方面没有AS2那么直接(有些时候,我还是会发现自己不自觉地在用一些AS2中的简易方法)。

Moock这样回复这些异议:

坦率地说,我还是强烈支持使用变化不多的编程工具。我喜欢ActionScript 3.0,也觉得Flash成长为一个开发平台是件很不错的事情。Adobe终于为程序员提供一些功能强大的工具——比如Flex Builder、ActionScript 3.0 profiler、 ASDoc、ANT集成、数据服务、干净利落的debugger、命令行编译器、Flex框架、公用的bug数据库、针对UI开发的MXML等等,这令人非常振奋。可见,Adobe对Flash程序员这个群体还是提供了很多支持的,而且他们的努力也必然能够吸引更多的开发员来使用Flash。

随着技术的推进,这类“健康”的讨论也会延续下去。

查看英文原文:Is the ActionScript 3.0 Debate Over?

没有回复

回复

独家内容

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。

揭示常见的重构误区

相对于Java,.NET在持续重构方面所给与的重视仍然少为人知,大多数人对于重构是否真正属于开发过程,以及如何将其应用到开发过程中持观望态度。Danijel Arsenovski试图为你揭示这些谜题。