选择显示字体大小

as2.0的私有,公有成员,类继承和as嵌套

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默认都为公有变量

function test_private()
{
tmp1 = "私有变量"; //赋值

tmp2 = "公有变量";

}

}


然后你在fla文件layer1中调用这个class


var myclass:test_private = new test_private();
trace("tmp1=" + myclass.tmp1);
trace("tmp2=" + 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 function hide_sq()
{
_root.square._visible = false;
}
private function show_sq()
{
_root.square._visible=true;
}
}


他有两个私有方法,和两个私有string变量,作用是显示和隐蔽mc square;
建立一个test2.as的类文件,我们要用这个类文件继承test1.as的所有成员



class test2 extends test1
{
function test2()
{
hide_txt = "隐藏"; //继承了test1的变量,我们可以给他赋值
show_txt="显示";


}


}



现在我们在fla中调用test2.as的继承类来实现test1.as中的方法;


在一个button上的as中写入以下代码,用来隐藏和显示信息

on (release) {
var myclass= new test2();
myclass.hide_sq(); //继承了test1.as中的方法
txt.text = myclass.hide_txt;
//这是在test2.as中赋值的test1.as中的变量,说明继承之后变更为自己的特性
}


在另一个button上as中写上以下:



on (release) {
var myclass = new test2();
myclass.show_sq();
txt.text = myclass.show_txt;
}




我们还可以在test1.as中加入新的方法.既可作为独立的类同样也是一个继承类.

说完继承类.再来说as文件嵌套.在flashmx中曾用到过#include "filename.as"
方式.如果用flash remoting就要引用 #include .netdebug.as"等文件.
其实.很象继承类.在一个as文件嵌套引用另一个as文件中的方法.
但是flash mx 2004中,as文件嵌套和继承类写法不一样.
举例:

建立test3.as文件如下:


var hide_txt:string;
var show_txt:string;

function hide_sq()
{
_root.square._visible = false;
}
function show_sq()
{
_root.square._visible=true;
}


建立test4.as文件如下:

class test4
{
#include "test3.as"
//这里引用test3.as文件.注意没(;)号结尾不然会出现一个语法错误

function test4()
{
hide_txt = "隐藏";
show_txt="显示";

}

}


很显然.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将会分工了.
  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons