2016-10-13 00:16:48 点击量:14 标签: 收藏本文
[AS3]as3利用函数返回函数源代码示例
- package {
- import flash.display.Sprite;
- public class Sample9261 extends Sprite
- {
- public function Sample9261()
- {
- //通过A调用只有一个参数的aFunc():
- chooseFuncBy("A")("A func has only one parameter.");
- //输出:aFunc():A func has only one parameter.
- //通过B调用有两个参数的bFunc():
- chooseFuncBy("B")("B func has two parameters.","No.2 parameter");
- //输出:bFunc():B func has two parameters. one more Parameter:No.2 parameter
- //字符串不符,默认函数
- chooseFuncBy("wu lala")("I choose A function");
- //输出:Welcome to kingda.org! My blog
- var withObj:Object = new Object();
- var myObj:Object = {name:"黑羽",blog:"http://www.kingda.org",hobby:"WowCraft"};
- chooseFuncBy(withObj)(myObj);
- /*输出:
- objectFunc():
- name:黑羽
- blog:http://www.kingda.org
- hobby:WowCraft
- */
- }
- public function chooseFuncBy(input:*):Function
- {
- //运用一:利用参数的种类来确定返回的函数
- if(!(input is String))
- {
- return objectFunc;
- }
- //运用二:根据参数内容来返回函数
- switch(input)
- {
- case "A":
- return aFunc;
- case "B":
- return bFunc;
- default:
- return kingdaFunc;
- }
- //更多延伸运用:利用参数个数、 is 确定不同Class的实例来选择函数,等等
- }
- public function aFunc(str:String):void
- {
- trace("aFunc():"+str);
- }
- public function bFunc(str1:String,str2:String):void
- {
- trace("bFunc():"+str1+" one more Parameter:"+str2);
- }
- public function kingdaFunc(...rest):void
- {
- trace("Welcome to Kingda.org! My blog");
- }
- public function objectFunc(kingdaObj:Object):void
- {
- trace("objectFunc():");
- for(var i:String in kingdaObj)
- {
- trace(i+":"+kingdaObj[i]);
- }
- }
- }
- }
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室