文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Flash Actionscript 2.0中的函数与事件 之 函数类

Flash Actionscript 2.0中的函数与事件 之 函数类

时间:2010-10-20  来源:ayan2006

函数是什么,在面向对象里面通常称为方法(Method),但是在AS2.0里面它却被定义为一个类。在我刚刚开始接触Flash的时候,我就是这样理解的,但是,问题是,他不是这样的,所以有点郁闷了。诶于是就翻看了MM的资料,终于知道了关于函数的一些比较细节的东西,这里是我自己的一点体会与理解,希望和大家一起分享探讨。

首先我们来看一下函数类,Function类包括两个方法和一个属性。也不知道是不是这样翻译的,看起来Function.apply()和Function.call()似乎差不多,呵呵,再看看它们是怎么用的吧。

Function.apply()使AS代码可以调用该函数Function.call()用Function对象来调用函数Function.prototype一个类原形的引用Function.apply() 包括两个参数:funcObj:指定被调用函数中的this关键字引用,一般调用时通常都指定为null;argumentsObj:参数对象。Function.apply()调用funcObj函数,argumentsObj参数列表传入到被调用函数。在MM的文档中介绍了使用它的两种方法,但是我这里把它做了一些修改,首先定义一个被调函数:

function showText ()

{

//打印函数已经被调用

trace ("Function showText Is Applied...");

trace("this.name="+this.name);

//输出传入的参数

for (j in arguments)

{

trace (arguments[j]);

}

}然后定义一个调用它的函数:

function caller (funcName, numParameters)

{

//获取函数引用

var theFunction = eval (funcName);

//获取参数个数

var n = Number (numParameters);

//生成假设的参数

var parameters:Array = new Array ();

for (var i = 0; i < n; i++)

{

parameters.push ("parameter" + i);

}

//创建一个对象OBJ,并添加name属性

var OBJ:Object=new Object();

OBJ.name="LeeFJ";

//用OBJ对象指定被调用函数中的this关键字

theFunction.apply (OBJ, parameters);

//调用函数,并传入参数

theFunction.apply (theFunction, parameters);

}在这里要传入两个参数,一个是函数名(String类型),一个是参数个数。最后再调用caller函数:

//传入函数名 和参数个数

caller ("showText", 8);输出结果:

Function showText Is Applied...

this.name=LeeFJ

parameter7

parameter6

parameter5

parameter4

parameter3

parameter2

parameter1

parameter0这样,大家已经看到运行结果了,Function.apply()的使用方法就知道了,它可以在运行是根据用户的指定名称来调用已经定义好的函数。哈哈,就是这个样子。

然后在看看Function.call()到底是怎么玩的。Function.call()有若干个参数,第一个参数和Function.apply()的作用几乎没什么差别,其后的参数,将作为被调函数的参数列表。在MM的文档中有一个比较有意思的例子,拿来看看先:

//定义一个空函数

转: http://woxihuanpes.blog.163.com/blog/static/12423219820100115252746/
相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载