随着一些相关资料对as3.0的介绍,有人可能认为它是另一种语言。它的根本改变在哪呢,它是什么呢?现在我们要放松一点。如果你熟知as2.0,那么它的变化并不是很大,甚至增加了一些命令你可以使用。
从我们第一眼看as3.0,它并不是一个全新的语言,它的架构要好于AS2.0,你将从FLASH8开始发现这些。任何东西都有自已的类和整洁的子类。类的继承关系看起来很复杂,但是它却是很容易理解。
主要的改变:
1、不在有_global范围了,但是你可以通过在预先的public,private和internal里,使用”namespace”来创建你自已的命名。
2、int/uint。 新的数据类型来描述非浮点数,这项增加可以使flash与其它程序语言同步,并且解决一些使用java和AMF/Flash Remoting令人头痛的问题。
3、你不能在在时间线上使用命令play()或stop()。MovieClip不在是在global的范围内了,你必须通过flash。display。MovieClip来使用它的属性。
4、正规标准表达式—-快速搜索操作字符串。
5、新的更简单的委派(delegate)
6、-DOM3 事件模型——一个新的,但是不被熟知的生成和操作事件信息的方法。
7、-显示API列表——图像根据新的或更多的逻辑基于类别如Sprites精灵和Shapes形体被细分
8、-在也不需要指定depth深度数值给对象。 Depth管理类现在会自动控制(基于API列表)并内建于flash player内。新的方法提供了对对象z-order也就是Z轴的操作。
9、-Final/protected关键词。—-防止你的类或函数被覆写。
10、-新的简单的XML元素及属性使用E4X。
11、-ArgumentError 类。——使用此类可以避免函数调用了不相符合的参数时所产生的错误。
12、-Package 关键诩—-如果你不知道pagckage是什么,不要担心,当你在做大的项目时你会慢慢喜欢上它。
13、-被用在数据输入输出接口的ByteArray提供方法和属性来优化读、写和二进制数据。
低级别—异常
异常处理对于FLASH开发人员来说路还较长,如果一个数值超出新的int/unit数据类型,一个错误就会被显示出来。有些类似于JAVA。你必须要想办法解决这些问题,否则FLASH程序可能就会垮台。如果一些东西在AS1和AS2中失效,flash player可能会很友好的忽略掉,在FLASH8中,你可能已经通过使用file upload看的了新的究错能力,它需要一系列事件来显示上载进程和缓存错。使用AS3,这些是工作在一个低级别的状态
异常可能会发生几个地方,例如:使用As3.0,你需要查看你的内存的最近使用状况,MemoryError是一个新的异常,当内存寻址失败时,它就会通过AVM2虚拟机显示错识。其它的异常为EOFError,illegalOperatinError,IOError,ScriptTimeoutError和StackOverflowError。
想一下上面这些内容,之前许多是JAVA等其它语言专用的,你可以通过StringBuilder类看到,它来自java类StringBuffer可以允许我们很容易的操作字符。终上所述,我必须说新的AS3类的结构看起来非常好。有不同背景的程序员看到FLASH就会说我知道它是怎么做的,我认为我们可以说actionscript已经过去了,它的童年过去了,青年时代刚刚到来。
新的命令
可能有更多的新命令,这里面例出一些发现到的.
Sound(声音)
leftPeak / rightPeak Property
当前声音的右声道振幅,从0到1
isBuffering : Boolean [read-only]
返回外缓冲MP3的状态
soundBufferTime : uint
声音在流式播放前缓冲的秒数
System(系统)
vmVersion : String [read-only]
当前安装的ActionScript虚拟机的版本
totalMemory : uint [read-only]
报告当前使用的内存数量
Debugging(调试)
getClassByName(name:String) : Class
返回指定名称类对象的引用
describeType(value:Object) : XML
xml对象产物,用来描述actionscript对象参数的方法.
ps:看来As3.0并没有想象中的变化那么大,不过先是FLASH8,接着FLEX2,AS3.0,macroemdia的脚步是越走越快.