从Flash5.0 Flash有了比较完善的程序语言。这绝对是革命性的进步。AS1.0让我们跟着她开始呀呀学语,开始明白用as可以控制SWF的内部流转。尔后,AS2.0渐趋完善,同时他也开始不满足与控制player内部的操作,在增强了与JS的通信后,Flash在网络编程领域也强势起来。
无疑,这样的进步让我们这些喜欢编写点程序的人喜上眉梢。记得1年以前Flash8将要发布的时候,AS能有什么更让人兴奋的进步是我最期望的事。然而,Flash8迎来了滤镜、过渡特效、摄像头捕捉....但是没有迎来AS的大变化。这包括,臃肿的V2组件,薄弱的Debug,差劲的智能感知。不能不说有点失望。
组件是Ria开发的常用零件。V2组件的绑定功能对Coldfusion的Web服务来说还算是简单,当与.net的webserver通信时就非常麻烦,其中最主要的就是数据类型的不匹配。同时,as2.0对soap的反序列做的也不好,(在本人看来)好像没有预定义什么函数。还有,v2组件的性能表现不是很让人满意。在‘Flash8 DataGrid组件性能测试 ’里我做了一个测试,可以看出,作为数据显示的重要元素的DataGrid,当数据增加超过1000条时给客户端增加很大压力。 document.title="Flash8 DataGrid组件性能测试 - "+document.title
另一个问题,Flash一直没有提供比较完善的Debug工具,相对与VS.net的调试环境更是如此。另外,由于Flash处理的主要是网络的异步操作,对于调换来说这就更加的重要了。
第三,我不太明白As的编译原理。常常我们会创建一个class.as的类文件,通过命名空间在swf文件内实例化他们。当Class增多,而且在Flash架构中出现文件相互调用的情况时,事情就复杂了。根据我的经验,对其中的Class增加属性或方法函数,绝对是痛苦的事。因为你必须将所有用到这个Class的swf重新编译,一旦忘记了哪一个就会出现意想不到的错误。常常,发现这样的错误需要几个小时的时间。
还好,Flash为RIA的网络开发提供了,诊听和委托机制(方便处理异步操作)、xml类(包括socket)、本地共享对象(比Cookie强多了,方便在线与离线的无缝转换)、定义类的接口(让语言更规范)。这都是她的优势,我认为。
发了不少牢骚。不过相对与AJAX的开发,Flash还是友好很多的。呵呵,也许一切都不会是完美的。还好,AS3.0就要出来了。希望对于Flash程序员,这是一次新的开始。