RSS
热门关键字:  下载  cms  模版  开源  dedecms
当前位置 :| 主页 > 站长学院 > 平面设计 > Flash >

Flash MX 编程深层次应用-ActionScript编程(4)

来源:ChinaZ.com 作者:未知 时间:2006-05-21 Tag: 点击:
1.3 点符号和路径

    

1.3.1  对象和点符号

因为ActionScript是一种面向对象的编程语言,所以对于ActionScript来说,最重要的概念就是对象了。对象是Flash动画中ActionScript 可以操纵的最基本的单元。每一个Symbol物件都可以被声明成对象。在成为对象之后,就会拥有一些属性、一些方法,ActionScript就是通过改变这些对象的属性,调用对象的方法来完成对动画的操纵的。

同一种类型的对象都从它的对象原型(称为它的父对象)那里继承了一些相同的属性和方法。例如,Graphic Symbol在被声明成对象之后,都会拥有_xscale_yscaleX轴和Y轴的缩放比例)这两个属性。这是它们从同一个父对象处继承来的。

既然不同的对象会有相同名字的属性或方法,那么ActionScript如何知道要去控制哪一个对象的属性和方法呢?这就需要用到点符号“.”。

在点符号之前(左侧)是对象或上一层的对象,在点符号后面(右侧)则是该对象的属性、方法或下一层的对象。举个例子看一下也许会更清楚:

Object是一个对象,它有一个属性property和一个方法Method()。如果要读取或是给它的属性赋值,应该这样做:

a=Object.property;  //读取属性property中的值并赋给变量a

Object.property=b;  //将变量b中的值赋给属性property

如果要调用Object对象的一个方法,应该这样做:

Obejct.Method();   //调用Object对象的Method()方法

或者

a=Object.Method();  //Object对象的Method()方法的返回值赋给变量a


1.3.2  多层式对象结构

在上面的这些例子中,点符号仅仅是作为分隔对象和属性方法使用的。其实,在实际应用中,点符号还有更大的用途。

Flash动画中,每一个对象就像文件系统中的一个文件,都有自己的一个路径。整个Flash的舞台(Stage)就相当于文件系统的根目录,舞台上的对象就像是根目录上的文件。在文件系统中,会有目录(Directory)的概念,有一部分某些性质相同的文件被放在同一个目录下面,目录中也可以有子目录。相应的,在Flash中,Movie Clip被声明成对象后,就充当起了目录的角色。所以在MovieClip中的物件被声明成了对象后,就相当于目录中的文件一样,被称为是对象中的对象。当然在Movie Clip中也可以再包含Movie Clip,所以,“目录中的目录”的情况在Flash的多层式对象结构中也会出现。看一个例子也许会更清楚一些:

在图1-5中,舞台是第一层,是根,在舞台上有MC1MC2两个MC对象,以及一个Graphics Symbol对象GS1MC1MC2就形成了第二层;在MC1中又有GS2GS3两个Graphics Symbol对象,MC2中还有一个MC3对象,它形成了第三层;MC3中有一个GS4,它是第四层。

如何在ActionScript中来表示这些对象的绝对路径?这就需要用到点符号。点符号的作用和文件系统中的目录分隔符“/(UNIX)或“\(Windows)类似。

 

 

 

 

 

 

 

 

 

 

 


                               第二层                     第三层            第四层

1-5

根对象不用声明,在Flash ActionScript中可以直接使用_root关键字来表示。关于_root关键字将在下面的章节中详细说明。

MC1MC2GS1对象的绝对路径分别是:

_root.MC1

_root.MC2

_root.GS1

GS2GS3MC3对象的绝对路径分别是:

_root.MC1.GS2

_root.MC1.GS2

_root.MC2.MC3

GS4对象的绝对路径是:

_root.MC2.MC3.GS4

结合上一小节说过的概念来更进一步地讲,如果GS4有一个属性property,一个方法Method(),我们可以这样访问:

a=_root.MC2.MC3.GS4.property;  //读取GS4对象的属性property中的值并赋给变量a

_root.MC2.MC3.GS4.property=b;  //将变量b中的值赋给GS4对象的属性property

_root.MC2.MC3.GS4.Method();   //调用GS4对象的Method()方法

使用点符号使得访问对象的层次十分清晰,这也是所有面向对象语言的特点。

在理解了ActionScript的多层对象和文件系统的目录结构的相似性后,就要了解一下在ActionScript编程中和对象层次关系非常密切的三个关键词_root_parentthis了。

1_root关键词,用来表示根对象——舞台

不管程序放在哪一个层级的对象中,都可以使用_root关键词来引用根对象。还是和文件系统对应,_root这个关键词就相当于/UNIX)或\Windows)在文件系统中的作用。在上面的一些关于对象的绝对路径的例子中,都是以_root关键词开始的。记住,Flash ActionScript中所有对象都在_root根对象(舞台Stage)中。

2_parent关键词,用来表示上一层的对象

_parent关键词的作用就和文件系统中的“..”(回上一层)相似。在Flash中,ActionScript代码被存放的对象路径就是执行这段代码时,默认的当前对象路径。例如,将ActionScript代码放在GS2中,这样在这段代码执行的时候,它的默认路径就是_root.MC1.GS2。如果要在MC2对象的ActionScript中引用GS3对象,可以这样写:

_parent.GS3

当然也可以使用_root关键词:

_root.MC1.GS3

_parent指的是上一层的对象,所以如果要引用上一层对象的属性或方法,也可以使用_parent关键词。例如,在GS2中引用MC1property属性和Method()方法如下:

a=_parent.property;

_parent.Method();

3this关键词

this关键词是用得最多的关键词,它表示当前的对象,作用类似于文件系统中的“.”(当前目录)。例如,在GS2对象中引用自己的属性property,虽然可行,但是不必要这样使用:

a=_root.MC1.GS2.property;

a=_parent.GS2.property;

因为当前对象就是GS2,所以可以使用this关键词:

a=this.property;

这样做非常简练和方便。同样的道理,在调用当前对象的方法时,也可以一样使用this关键词。例如,在GS对象中调用GS2Method()方法:

this.Method();


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
热点关注
相关文章