作为一种高级语言,as3.0的语法于大多数高级语言的语法很象,不过还是有些细微的区别。
命名空间与包的概念
今天在看到命名空间与包的时候,看着看着就糊涂了在java中包起限制访问域作用的,在.net中命名空间(namespace)也是起类似作用的。可为什么在as3中同时存在命名空间和包呢?这是我带这疑问去看的。看到了最后我才明白在as3中包是起限制访问域的作用的,并且包还对于到了物理结构的folder(即包名对应工程路径下的folder名),而命名空间的作用有点像访问限制符(public , private , protected , internal)的作用,只是你可以自己选择开放那些对象到全局空间中,所以说我想域访问作用符可能是用命名空间实现的。
函数概念
在action script中函数是一个很重要的概念,它的很多方式与其他高级语言中的函数概念有所不同。第一,函数是一个对象,那么既然是一个对象就要有属性和方法,对于as的函数来说函数的属性是可以在函数外部定义的,如
第二,函数可以内嵌函数,并且内嵌的函数也可以象参数一样传递到外部。
第三,函数闭包概念,在adobe的官方文件上说函数闭包是一个对象,其中包含函数的快照及其“词汇环境”。这个听起来有点迷糊,快照??词汇环境??我个人对函数闭包的理解是函数对象的引用,它包含完整的函数信息,有点类似于c++中的函数指针(只是类似哦)。下面的代码可以很清晰的说明问题: