
AS2.0和JAVA.C#一样.也运用OOP模式.哪它一定就有继承.子类父类超类的分别.学过
JAVA,C#的人很快就能理解.
这里说的类继承指一个class类能够继承另一个class类的全部方法和属性.在说AS2.O的
类继承方法前.先说一下什么是.private(私有性成员)和public(公有性成员)
AS2.0建立在class中的所有变量,方法,属性默认都是公有性的.我们当然也可以定义为私有
性的.比如一个变量.或方法.我并不想在FLA文件中用到.而只是在class类中作为一个函数或
私有方法为这个class文件所用.就要用到private 定义为私有性
举例:
建立一个名为test_private.as的class类文件:
class test_private
{
private var tmp1:String; //声明tmp为私有变量
public var tmp2:String; //不加public默认都为公有变量
functitmp2=" + myclass.tmp2);
将会出现检测到一个私有成员不能被防问的错误.指向在tmp1这个private变量上.
现在我们把fla里的代码改一下再运行:
var myclass = new test_private();
trace("tmp1=" + myclass.tmp1);
trace("tmp2=" + myclass.tmp2);
这次运行通过.显然区别就在于.定义class对象时如果定义引用class类的 type 类形,FLASH
将会检测到类中哪些为公有性和私有性的成员.我们也可以把方法.自定义函数定义成为类私有成员;这样做的好处.私有成员不会被前台调用.也防止一些变量或函数方法的被恶意
调用.
下面说的是类继承:
比如说.我建立的一个类的方法,属性,变量想被别一个class调用.而我又不想在另一个类中
重复写代码.就要用到继承.再比如说一个类在flash运行中.行到一个动态的变量.而我的另
一个类文件运行时想调用这个动态的变量.就要给这两个类文件建立一个关系.
说简单点:父类与子类关系.或者是爷爷类,父类.子类关系.他们都有一些相同的特性.而自
己本身也可以有自己的特性.相同的特性都可以使用.
举例:
建立一个fla文件.一个名为txt的文本框.一个名为square的方块mc,两个按钮
//建立一个test1.as的类文件
class test1
{
private var hide_txt:String;
private var show_txt:String;
private functi;
}
}
现在我们在fla中调用test2.as的继承类来实现test1.as中的方法;
在一个butt;
}
}
很显然.test3.as不是一个clas类文件.而只是一个包含自定义函数变量的
as文件.如果你加上clas{}变为类文件,#include不能包含定义成类的as文
件.下面使用嵌套的test4.as类文件;在两个BUTTON上加入以下代码.同上
面差不多.
on (release) {
var myclass:test4 = new test4();
myclass.show_sq()
txt.text = myclass.show_txt;
}
on (release) {
var myclass:test4= new test4();
myclass.hide_sq()
txt.text = myclass.hide_txt;
}
显然test4.as类文件一样也能引用嵌套进来的as文件中的变量和自定义函数;
你也可以嵌套进多个as文件,这与类继承有点不一样.
AS2.0比起1.0相对灵活多了.同样.对coder的要求也高了.相信以后Designer
和coder将会分工了.
选择5ucms.org 选择未来