·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS函数特殊应用之通过函数执行返回函数的用法示例

时间:2012-11-06 22:42cnblogs.com
[AS3]as3.0中通过函数执行返回函数的用法示例,as3函数,返回函数

[AS3]as3.0中通过函数执行返回函数的用法示例

  1. package {  
  2.     import flash.display.Sprite;  
  3.     public class Sample9261 extends Sprite  
  4.     {     
  5.         public function Sample9261()  
  6.         {  
  7.             //极酷播放器提示:通过A调用只有一个参数的aFunc():  
  8.             chooseFuncBy("A")("A func has only one parameter.");  
  9.             //输出:aFunc():A func has only one parameter.  
  10.               
  11.             //通过B调用有两个参数的bFunc():  
  12.             chooseFuncBy("B")("B func has two parameters.","No.2 parameter");  
  13.             //输出:bFunc():B func has two parameters. one more Parameter:No.2 parameter  
  14.               
  15.             //字符串不符,默认函数  
  16.          chooseFuncBy("wu lala")("I choose A function");  
  17.             //输出:Welcome to kingda.org! My blog  
  18.               
  19.             var withObj:Object = new Object();  
  20.             var myObj:Object = {name:"黑羽",blog:"http://www.kingda.org",hobby:"WowCraft"};  
  21.             chooseFuncBy(withObj)(myObj);  
  22.             /*cuplayer.com提示输出:  
  23.         objectFunc():  
  24.             name:黑羽  
  25.         blog:http://www.kingda.org  
  26.             hobby:WowCraft  
  27.             */  
  28.         }  
  29.           
  30.         public function chooseFuncBy(input:*):Function  
  31.         {  
  32.             //极酷播放器提示:运用一:利用参数的种类来确定返回的函数  
  33.          if(!(input  is  String))  
  34.             {  
  35.                 return objectFunc;  
  36.             }  
  37.               
  38.              //运用二:根据参数内容来返回函数  
  39.          switch(input)  
  40.             {  
  41.                 case "A":  
  42.                 return aFunc;  
  43.                 case "B":  
  44.                 return bFunc;  
  45.                 default:  
  46.                 return kingdaFunc;  
  47.             }  
  48.               
  49.            //更多延伸运用:利用参数个数、 is 确定不同Class的实例来选择函数,等等  
  50.         }  
  51.         public function aFunc(str:String):void  
  52.         {  
  53.             trace("aFunc():"+str);  
  54.         }  
  55.           
  56.         public function bFunc(str1:String,str2:String):void  
  57.         {  
  58.             trace("bFunc():"+str1+" one more Parameter:"+str2);  
  59.         }  
  60.           
  61.         public function kingdaFunc(...rest):void  
  62.         {  
  63.             trace("Welcome to Kingda.org! My blog");  
  64.         }  
  65.           
  66.         public function objectFunc(kingdaObj:Object):void  
  67.         {  
  68.             trace("objectFunc():");  
  69.             for(var i:String  in  kingdaObj)  
  70.             {  
  71.                 trace(i+":"+kingdaObj[i]);  
  72.             }  
  73.         }  
  74.     }  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器