论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

有关Falsh as3 的时间轴类与变量定义

文章类别:Flash AS | 发表日期:2009-8-2 18:37:44

有关Falsh as3 的时间轴类与变量定义


以下是我对Falsh as3的时间轴类与变量定义相关问题的整理,希望对大家
学习falsh as3 有所帮助。

首先创建一个Flash文档文件,单击时间轴的第1帧,打开动作面板,输入下列测试代码:

trace(this)//[object Timeline0_64932e78da228d4e93dbb563793828e2]

trace的过程实际上是调用了this的toString()方法,而toString()返回的是一个字符串,其中最常见的是“[object 类名]”这样的字符串。

所以,从输出的信息中可以看出,this是Timeline0_64932e78da228d4e93dbb563793828e2类的实例,而且,我们知道this代表当前的对象,当舞台是空的时候,this代表的应是时间轴,所以暂时把imeline0_64932e78da228d4e93dbb563793828e2类称为Timeline0类。
同样的,可以测试下列代码:

trace(root)//[object Timeline0_1f5aea26690d74f8aedd7abf338de7]

与上面的代码输出的信息类似,只是Timeline0后面的字符不相同。但通过下面的代码可以说明此时,this与root是一样的。

trace(this==root)//true

现在,对时间轴应该有了大概的了解:
1、root是Timeline0类的一个唯一实例,请注意这里的唯一的含义,即当你创建一个flash文档文件时,不可能在出现2个或更多个主时间轴。

同样,虽然我们可以创建很多的影片剪辑实例,但每个影片剪辑实例也只能有1个时间轴,这些时间轴对应相应的Timeline1、Timeline2类。
2、Timeline类是继承MovieClip类的一个动态类,所以,我们可以往类或实例中添加属性和方法。

首先我们向Timeline0类添加一个属性和方法:

var var1="variable"
function func():String
{
       return "function"
}

如何知道var1属性和func()方法已经添加到Timeline0类中,我们只需用Timeline0类的唯一实例root或this来测试一下。

trace(root.var1,root.func())//variable function

现在我们看到了,实例root已经具有了var1属性和func()方法,而且添加的属性和方法肯定是公有的,可以测试一下:

root.var1="zjs"

当然,我们不一定要通过实例来访问这些属性和方法,因为上面定义的属性和方法的语法实际上与在Timeline0类中定义是一样的,在

Timeline0类,任何类型的属性和方法都可以访问:

trace(var1,func())//variable function

因此,在时间轴上通过var和function定义的变量和函数,实际上是在Timeline0类中定义的属性和方法一样。有兴趣的朋友可以测试影片剪辑

实例与影片剪辑链接类的关系,在影片剪辑实例的时间轴中定义的变量可以被链接类访问,链接类定义的属性也可以在时间轴上访问到。

然后,删除前面的代码,接下去我们向实例root中添加一些属性和方法:

root.var1="variable"
root.func=function():String
{
       return "function"
}

这些实例特有的特征是它自己特有的,并没有添加到Timeline0类中,所以只能用“实例名.”的形式访问它们:

trace(this.var1,this.func())//variable function

注意,此时的this代表的是root,this在类文件中表示实例,也就是说,this.var1和var1是不一样。前者代表访问实例属性var1,如果这个实

例属性是某个实例动态添加的,就不能通过var1的方法访问,但如果这个属性是所有实例都具有的,也就是类里面定义的属性,两种方式都可

以访问,因为,类里定义的属性,类里肯定可以访问,实例也肯定可以访问。而实例动态添加的,类里不一定能访问到。

所以,到目前为上,在as3中定义变量的语法有2种:

“var 变量名”和“this.变量名”

使用var定义的变量都是属于特定类的,所以类时间轴(类)和实例(this)中都可以访问,而通过this定义的变量是属于特定实例的,访问这

种变量时一定要带上实例的引用,否则会出现变量没定义的错误。

另外,定义变量时不使用this,也不使用var也是允许的,但它的作用域有点怪异。

用this与不用this是不一样的(在as2中是一样的)。
测试1:
var1=4
trace(var1)//4

测试2:
var1=4
trace(var1)//undefined

变量不能重复定义,下面的代码报错
var var1=4
var var1=5

但下面的代码不报错:
var1=4
var var1=5

再测试:
var1=4
trace(var1)//4
var var1=5
trace(var1)//5
这个问题等正式版出来再研究,呵

 

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058