主题:  求自定义对象,自定义函数的详细资料:-)

求可知

职务:普通成员
等级:3
金币:10.0
发贴:718
#12002/6/13 19:17:48
谢谢个位大虾了:-)



Demon.S

职务:版主
等级:5
金币:10.0
发贴:2468
#22002/6/15 15:14:22
ft

a=function(){
this.b;
this.c=function(){}
}



求可知

职务:普通成员
等级:3
金币:10.0
发贴:718
#32002/6/15 16:53:49
我是挺笨的:-)
我想找一些能详细一点的:-)
比如一般函数,构造函数之类的
还有自定义对象什么的:-)
斑竹,帮帮忙吧:-)



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
#42002/6/16 9:27:44
在flash中支持类和对象的定义,这是毫无疑问的,但是flash中没有专门来定义类的命令(在c++中利用class来定义类),flash中是使用定义函数的关键字function来定义类的,而且其语法与定义函数也是完全相同的,反过来也就是说,在flash中,一个函数我们可以把它当作类来使用,定义对象,一个类我们也可以把它当函数使用,直接进行调用。
既然这样,那么在flash中类与函数到底区别在什么地方呢?
下面我们先来看看flash是怎么样定义类,和定义对象的,然后我们再来区别类与函数。
(1)定义类。定义类与定义函数基本上没有什么区别(类不能有返回值),如下面程序:
程序1:
//定义类ClassA:
function ClassA()
{
    this.name = "ClassA";
    trace("This is ClassA.");
};
//定义类ClassB:
ClassB = function(arg)
{
    this.name = "ClassB";
    trace("The ClassB's argument :"+arg);
};
//分别给两个类定义对象,并输出内部变量:
myA = new ClassA();
myB = new ClassB("ClassB's arg");
trace(myA.name);
trace(myB.name);

就像定义函数一样,function的位置并不影响定义的结果,如图10.1是我们程序的运行结果,说明我们定义的类都是成功的。

图10.1 定义类与对象
而如果我们直接那ClassA与ClassB当作函数来调用,那么同样也能输出前面两句,但后面两句没法再输出了。
(2)类的初始化与函数的执行有什么不同。我们定义对象的过程可以看作是类的初始化过程,而我们调用函数却是直接运行程序,那这两种方式有什么不同呢?我们就对一个程序段进行两种调用,看看有什么区别。
//程序2:
ClassA = function(arg)
{
    trace(arg+"'s this :"+this);
    this.name = "ClassA";
};
myA = new ClassA("myA");
trace("this.name = "+this.name);
ClassA("Function");
trace("this.name = "+this.name);

如图10.2就是程序2的运行结果,由结果我们可以看出,当初始化类的时候,类内的this指针指向的是新建的对象本身,而调用函数的时候,this指针指向的却是_root,同样在初始化类后,this.name是新建对象的内部变量,不属于外部mc,而调用函数后,this.name却存在与场景下面了。

图10.2 类与函数的区别
(3)返回值的问题。我们都知道,flash中,函数是可以由返回值的,但是类能不能由返回值呢?它返回给谁呢?答案当然是类的初始化不能返回值。请看下面程序3:
//程序3:
ClassA = function(arg0,arg1)
{
    this.total = arg0 + arg1;
    trace(this.total);
    return this.total;
};
myA = new ClassA(10,20);
trace(myA);
myB = ClassA(20,30);
trace(myB);
程序3的运行结果如图10.3所示,我们可以看出,类的初始化没有返回值,而直接调用函数就有返回值。

图10.3 返回值问题

到现在你应该明白类在flash里面是怎么定义的了吧,虽然与定义函数的语法相似,但我们讲完了这些区别之后,相信你就不会再混淆它们了。有关于类及对象还有成员的具体定义及用法,我们在后面几个问题中将详细讲解。


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

求可知

职务:普通成员
等级:3
金币:10.0
发贴:718
#52002/6/17 18:20:44
斑竹好热心啊:-)



仇笑天

职务:普通成员
等级:1
金币:0.0
发贴:34
#62002/7/2 16:56:34
图呢?