快速业务通道

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

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12


函数是什么,在面向对象里面通常称为方法(Method),但是在AS2.0里面它却被定义为一个类。在我刚刚开始接触Flash的时候,我就是这样理解的,但是,问题是,他不是这样的,所以有点郁闷了。诶于是就翻看了MM的资料,终于知道了关于函数的一些比较细节的东西,这里是我自己的一点体会与理解,希望和大家一起分享探讨。 首先我们来看一下函数类,Function类包括两个方法和一个属性。也不知道是不是这样翻译的,看起来Function.apply()Function.call()似乎差不多,呵呵,再看看它们是怎么用的吧。
Function.apply() 使AS代码可以调用该函数
Function.call() Function对象来调用函数
Function.prototype 一个类原形的引用
Function.apply() 包括两个参数:funcObj:指定被调用函数中的this关键字引用,一般调用时通常都指定为nullargumentsObj:参数对象。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的文档中有一个比较有意思的例子,拿来看看先:
//定义一个空函数 function MyObject (){} //定义需要调用的函数 function MyMethod (obj) { trace ("this == obj? " + (this == obj)); trace("obj.name="+obj.name); } //创建一个对象 var obj = new MyObject (); obj.name="LeeFJ"; //调用MyMethod()方法,并用obj指定MyMethod()方法中的this关键字, //同时把它作为一个参数传入 MyMethod.call (obj, obj);
输出结果是:
this == obj? true obj.name=LeeFJ
这样Function.call()的使用也基本知道拉,哈哈,其实用Function.apply()Function.call()的第一个参数指定被调函数中的this关键字还是比较有用的,尤其是在使用XML,L

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多
上一篇: 几种线条效果下一篇: 拍照效果

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号