数码资讯
开始的FlashAS3教程深入的研究(7)从基础
注释:17,文件中的多个类 一般来说,当文件是一个类,但在AS3中,现在可以定义多个类文件协助主班。 类文件中的辅助类必须在类包之外定义,并且只能对文件中的主类和其他辅助类可见。 例如: 包{ 类{ 函数M 17,文件中的多个类 一般来说,当文件是一个类,但在AS3中,现在可以定义多个类文件协助主班
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
注释:17,文件中的多个类
一般来说,当文件是一个类,但在AS3中,现在可以定义多个类文件协助主班。
类文件中的辅助类必须在类包之外定义,并且只能对文件中的主类和其他辅助类可见。
例如:
包{
类{
函数M
17,文件中的多个类
一般来说,当文件是一个类,但在AS3中,现在可以定义多个类文件协助主班。
类文件中的辅助类必须在类包之外定义,并且只能对文件中的主类和其他辅助类可见。
例如:
包{
类{
函数的MyClass(){
VaR的帮手:myhelper =新myhelper();
}
}
}
类myhelper {
函数的MyHelper(){
VaR的帮手:helpershelper =新helpershelper();
}
}
类helpershelper {
功能helpershelper(){
}
}
请注意,包中最多只能定义一个类。同一文件中的辅助类不是包块的一部分,只能在该文件中可见并使用。
18、访问属性
as3引入了两个新的类和类成员将在AS2私人访问属性访问属性。在AS3中,现在有以下访问控制特性:
公共
受保护的
私人
内部(默认)
市民:公共属性在AS2相同。公共属性定义的任何地方,任何地方都可以引用的任何成员。
构造函数必须定义为公共的。
应用程序类必须是公共的。
受保护:受保护是一个新属性。由受保护的指定的成员只能由自身或其子类访问。如果外部类试图访问受保护的成员,将引发编译错误。
类和构造函数不能声明为受保护。
已经有私人性质:AS2,但在AS2,子类的成员可以任意访问父类的私有成员。现在在AS3,私人属性只能访问内部类,和其他类,包括的子类,不能直接访问成员。也就是说,在子,一个名字可以被定义为对父类的一个成员,只要父类的该成员是私有的。
类和构造函数不能定义为私有。
内部:内部和公众是相似的。不同的是类成员只能在同一个包中的成员访问,而其他包中的成员不能访问它们。
内部是除构造函数之外的所有类和类成员的默认声明。
辅助类的访问控制是不同的,因为辅助类不属于任何包,内部声明将仅限制其访问当前文件。注意:主类不能继承辅助类,只有辅助类可以继承辅助类并处于同一文件中。
访问控制错误不仅是编译时错误,而且是运行时错误。进入2隐藏方法不能用在AS3中,如:
包{
进口flash.display.sprite;
应用程序类必须定义为公共(默认为内部)
公共类的访问控制扩展雪碧{
/构造函数总是公开的
函数的AccessControl(){
在这个文件中只能访问辅助类。
var助手:新助手();
微量(帮手。pubnum); / /好
(帮手。protnum); / / / /跟踪误差的错误,无法访问受保护的成员
(帮手。privnum); / / / /跟踪误差的错误,无法访问私有成员
微量(帮手。内口); / /好
}
}
}
默认是内部辅助类。
辅助类{
允许在任何地方访问的公共语句
将变量设置为私有,然后将set公共语句设置为访问方法。
公共变量pubnum:数量= 1;
只允许在子类中访问受保护的语句。
保护无功protnum:数量= 2;
只能在类内访问私有语句。
机车的privnum:数量= 3;
只允许在同一个包中访问内部语句。
但是对于辅助类,只能在同一个文件类中进行访问。
成份:内部VaR数= 4;
构造函数始终是公共的。
函数助手(){
}
}
子辅助类默认是内部的
可以继承其他辅助类
类subhelper延伸辅助{
、构造函数、公共
功能subhelper(){
微量(pubnum); / /好
微量(protnum) / /好;继承。
(privnum); / / / /跟踪误差不能访问私有
微量(内口); / /好
}
}
另一个例子:
包{
进口flash.display.sprite;
导入容器;
类需要公开/应用程序(默认为内部)
公共类的访问控制扩展雪碧{
始终是公共的/构造函数
函数的AccessControl(){
其他包中的访问类
如果仅公开
var碗:碗=新(碗); / ok
篮子:篮子=新的(篮子/ var);错误/不能访问内部
微量(碗。pubnum); / /好
(碗。protnum); / / / /跟踪误差不能访问受保护的
(碗。privnum); / / / /跟踪误差不能访问私有
(碗内口); / / / /跟踪误差不能访问内部
}
}
}
Actionscript代码:
包装容器{
类可访问的任何地方
公共类碗{
在任何地方授予访问权限
公共变量pubnum:数量= 1;
仅授予用于保护的访问权限
在该类中/子类中
保护无功protnum:数量= 2;
仅在该类中授予私有访问权
机车的privnum:数量= 3;
仅在同一个包中授予内部访问权限
成份:内部VaR数= 4;
始终是公共的/构造函数
函数碗(){
可以访问inteneral类如果 /包
篮子:篮子=新篮子();
微量(篮子。pubnum); / /好
(篮子。protnum); / / / /跟踪误差不能访问受保护的
(篮子。privnum); / / / /跟踪误差不能访问私有
微量(篮子。内口); / /好一包
使用公共方法克隆
无功basketcopy:篮= basket.clone();
}
}
}
Actionscript代码:
包装容器{
只有 / /内
包中的其他类
内部类篮子{
在任何地方授予访问权限
公共变量pubnum:数量= 1;
仅授予用于保护的访问权限
在该类中/子类中
保护无功protnum:数量= 2;
仅在该类中授予私有访问权
机车的privnum:数量= 3;
仅在同一个包中授予内部访问权限
成份:内部VaR数= 4;
始终是公共的/构造函数
函数篮子(){
}
只要可以访问任何地方
一个篮子实例引用
公共功能克隆():篮子{
篮子:篮子=新篮子();
basket.pubnum = pubnum; / /好
basket.protnum = protnum; / /好同一类
basket.privnum = privnum; / /好同一类
basket.internum =内口; / /好
回篮;
}
}
}
19,抽象类
不幸的是,在AS3中没有抽象类(继承,没有实例化)。所以你不能创建抽象类直接在闪光。然而,这些内置的类的一些在实际上是抽象类。包括 uff1a
显示对象
interactiveobject
displayobjectcontainer
与抽象类一样,您不能使用新关键字来创建这些类的实例:
VaR myobj时:interactiveobject =新(interactiveobject); / /错误
但是,在另一方面,您不能创建这些类的直接子类,如:
包{
进口flash.display.displayobject;
公共课mydisplay延伸DisplayObject {
公共函数MyDisplay(){
错误
}
}
}
这个类的属性与它在播放器中的定义有关。如果您创建并实例化这些类的直接子类,或者直接实例化类,就会出现参数错误。
所以,如果你想扩展一个抽象类,你可以使用扩展现有的内部小类的抽象类的方法。例如,如果你想扩展DisplayObject,您可以扩展的形状,重量轻,内部访问级别,直接对DisplayObject类。
一般来说,当文件是一个类,但在AS3中,现在可以定义多个类文件协助主班。
类文件中的辅助类必须在类包之外定义,并且只能对文件中的主类和其他辅助类可见。
例如:
包{
类{
函数M
17,文件中的多个类
一般来说,当文件是一个类,但在AS3中,现在可以定义多个类文件协助主班。
类文件中的辅助类必须在类包之外定义,并且只能对文件中的主类和其他辅助类可见。
例如:
包{
类{
函数的MyClass(){
VaR的帮手:myhelper =新myhelper();
}
}
}
类myhelper {
函数的MyHelper(){
VaR的帮手:helpershelper =新helpershelper();
}
}
类helpershelper {
功能helpershelper(){
}
}
请注意,包中最多只能定义一个类。同一文件中的辅助类不是包块的一部分,只能在该文件中可见并使用。
18、访问属性
as3引入了两个新的类和类成员将在AS2私人访问属性访问属性。在AS3中,现在有以下访问控制特性:
公共
受保护的
私人
内部(默认)
市民:公共属性在AS2相同。公共属性定义的任何地方,任何地方都可以引用的任何成员。
构造函数必须定义为公共的。
应用程序类必须是公共的。
受保护:受保护是一个新属性。由受保护的指定的成员只能由自身或其子类访问。如果外部类试图访问受保护的成员,将引发编译错误。
类和构造函数不能声明为受保护。
已经有私人性质:AS2,但在AS2,子类的成员可以任意访问父类的私有成员。现在在AS3,私人属性只能访问内部类,和其他类,包括的子类,不能直接访问成员。也就是说,在子,一个名字可以被定义为对父类的一个成员,只要父类的该成员是私有的。
类和构造函数不能定义为私有。
内部:内部和公众是相似的。不同的是类成员只能在同一个包中的成员访问,而其他包中的成员不能访问它们。
内部是除构造函数之外的所有类和类成员的默认声明。
辅助类的访问控制是不同的,因为辅助类不属于任何包,内部声明将仅限制其访问当前文件。注意:主类不能继承辅助类,只有辅助类可以继承辅助类并处于同一文件中。
访问控制错误不仅是编译时错误,而且是运行时错误。进入2隐藏方法不能用在AS3中,如:
包{
进口flash.display.sprite;
应用程序类必须定义为公共(默认为内部)
公共类的访问控制扩展雪碧{
/构造函数总是公开的
函数的AccessControl(){
在这个文件中只能访问辅助类。
var助手:新助手();
微量(帮手。pubnum); / /好
(帮手。protnum); / / / /跟踪误差的错误,无法访问受保护的成员
(帮手。privnum); / / / /跟踪误差的错误,无法访问私有成员
微量(帮手。内口); / /好
}
}
}
默认是内部辅助类。
辅助类{
允许在任何地方访问的公共语句
将变量设置为私有,然后将set公共语句设置为访问方法。
公共变量pubnum:数量= 1;
只允许在子类中访问受保护的语句。
保护无功protnum:数量= 2;
只能在类内访问私有语句。
机车的privnum:数量= 3;
只允许在同一个包中访问内部语句。
但是对于辅助类,只能在同一个文件类中进行访问。
成份:内部VaR数= 4;
构造函数始终是公共的。
函数助手(){
}
}
子辅助类默认是内部的
可以继承其他辅助类
类subhelper延伸辅助{
、构造函数、公共
功能subhelper(){
微量(pubnum); / /好
微量(protnum) / /好;继承。
(privnum); / / / /跟踪误差不能访问私有
微量(内口); / /好
}
}
另一个例子:
包{
进口flash.display.sprite;
导入容器;
类需要公开/应用程序(默认为内部)
公共类的访问控制扩展雪碧{
始终是公共的/构造函数
函数的AccessControl(){
其他包中的访问类
如果仅公开
var碗:碗=新(碗); / ok
篮子:篮子=新的(篮子/ var);错误/不能访问内部
微量(碗。pubnum); / /好
(碗。protnum); / / / /跟踪误差不能访问受保护的
(碗。privnum); / / / /跟踪误差不能访问私有
(碗内口); / / / /跟踪误差不能访问内部
}
}
}
Actionscript代码:
包装容器{
类可访问的任何地方
公共类碗{
在任何地方授予访问权限
公共变量pubnum:数量= 1;
仅授予用于保护的访问权限
在该类中/子类中
保护无功protnum:数量= 2;
仅在该类中授予私有访问权
机车的privnum:数量= 3;
仅在同一个包中授予内部访问权限
成份:内部VaR数= 4;
始终是公共的/构造函数
函数碗(){
可以访问inteneral类如果 /包
篮子:篮子=新篮子();
微量(篮子。pubnum); / /好
(篮子。protnum); / / / /跟踪误差不能访问受保护的
(篮子。privnum); / / / /跟踪误差不能访问私有
微量(篮子。内口); / /好一包
使用公共方法克隆
无功basketcopy:篮= basket.clone();
}
}
}
Actionscript代码:
包装容器{
只有 / /内
包中的其他类
内部类篮子{
在任何地方授予访问权限
公共变量pubnum:数量= 1;
仅授予用于保护的访问权限
在该类中/子类中
保护无功protnum:数量= 2;
仅在该类中授予私有访问权
机车的privnum:数量= 3;
仅在同一个包中授予内部访问权限
成份:内部VaR数= 4;
始终是公共的/构造函数
函数篮子(){
}
只要可以访问任何地方
一个篮子实例引用
公共功能克隆():篮子{
篮子:篮子=新篮子();
basket.pubnum = pubnum; / /好
basket.protnum = protnum; / /好同一类
basket.privnum = privnum; / /好同一类
basket.internum =内口; / /好
回篮;
}
}
}
19,抽象类
不幸的是,在AS3中没有抽象类(继承,没有实例化)。所以你不能创建抽象类直接在闪光。然而,这些内置的类的一些在实际上是抽象类。包括 uff1a
显示对象
interactiveobject
displayobjectcontainer
与抽象类一样,您不能使用新关键字来创建这些类的实例:
VaR myobj时:interactiveobject =新(interactiveobject); / /错误
但是,在另一方面,您不能创建这些类的直接子类,如:
包{
进口flash.display.displayobject;
公共课mydisplay延伸DisplayObject {
公共函数MyDisplay(){
错误
}
}
}
这个类的属性与它在播放器中的定义有关。如果您创建并实例化这些类的直接子类,或者直接实例化类,就会出现参数错误。
所以,如果你想扩展一个抽象类,你可以使用扩展现有的内部小类的抽象类的方法。例如,如果你想扩展DisplayObject,您可以扩展的形状,重量轻,内部访问级别,直接对DisplayObject类。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。