Flash高级知识学习:ActionScript扫盲
随着AS3规范的推出,很多Flash Developer也越来越想了解AS3,我的这篇文章应该可以在各位仔细观看AS3规范之前对ActionScript有一个扫盲级的了解,虽然是扫盲级,但是也不是类似于“hello!World”类型的文章,看了你就知道了。
Action Script
Action Script简称为AS,是Flash产品平台的脚本解释语言。该语言可以实现Flash中内容与内容,内容与用户之间的交互。AS的解释工作由Action Virtual Machine(AVM)来解释,AVM可以称之为AS虚拟机,类似于JVM,AVM是Flash Player播放器中的一部分。AS语句要想起作用是要通过Flash创作工具或Flex服务器将其编译生成2进制代码格式方可,而编译过的2进制代码格式将成为SWF文件中的一部分,被Flash播放器执行。AS1.0起源于ECMAScript标准,由于ECMA的语法的兼容性和Flash Player播放器的大小和渲染引擎的需要,AS可以称之为是语法来源于ECMAScript。
说到AS不得不说Flash4的AS集合,它曾经让Flash4兼容格式的内容变化多端。但是从一定程度上,Flash4的AS不能称之为成熟的并且为开发者所承认的脚本语言集合。它的语法方式完全不同于ECMAScript。虽然我们可以在Flash5的时代可以向它添加一些ECMA效仿的语句上去,但是AS在Flash4中是完全于ECMAScript标准相左的。现在Flash4的AS仍然可以被应用在Flash Lite1.1的内容之上。
AS1.0是从Flash5的时代诞生的,这时的版本就已经具备了ECMAScript标准的语法格式和语义解释。尽管后来的Flash Player5/6的播放器版本(Build)的一再更新,使得越来越多的ECMA语法和语义被纳入到AS1.0的API当中去,但是核心语言的编译处理及表现方式都是延续了Flash5的AS1.0的标准。甚至于到后来的Flash7,对于AS1.0的核心解释机制,仍然与Flash Player5有着很多相同之处。
AS2.0是在MX时代被慢慢引入的,而在MX 2004版本被开发者全面采纳。AS2.0的运行则是完全在Flash Player6以上的版本中才具备的机制。AS2.0在Flash6中都可以运行,是因为AS2.0语句在运行时(runtime)环境下仍然采用了AS1.0的模型。这也是骨子里为什么AS2.0的运行性能并不比AS1.0优秀的重要原因。AS2.0的编写方式则是更加成熟,引入了面向对象编程的方式,并且有良好的类型声明,而且分离了运行时和编译时的异常处理。AS2在格式上遵从了ECMA4 Netscape的语言方案,但是并不是完全兼容ECMAScript标准。虽然基于AS2的开发方式从众多开发者眼中褒贬不一,但是不可否认的是,AS2为了AS3.0的诞生铺设了一条康庄大道。
AS3.0的规范已经出来了,而AS3.0也是未来Flash开发脚本的核心。AS3的播放器只有从Flash Player 8.5以上版本开始支持,也就是我们现在用到的Flex 2.0 Beta才可以对AS3进行编译的工作。AS3有着很多不同之处,它将全面支持ECMA4的语言标准,意味着AS3将具有ECMAScript中的Package/命名空间namespace等多项AS2不具备的特点。AS3将全面支持E4X,也就是支持ECMAScrpit for XML的标准。AS3将采用全新的AVM来进行解释,与AS1/2的AVM将完全不同。此外AS3的编译器也是完全和AS2的编译器有所不同。此外,AS3的API将更加直观,会去除很多容易让人混淆的部分,添加对ECMA全面的兼容性,目的就是让基于AS3的内容更加快速与强壮。
说了这么多,AS3到底包含什么细节。去Spec里挖掘一下,然后先用Flex Builder 2体验一下吧。