注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

神魔破杜梓的叨叨堂

Programming every day!

 
 
 

日志

 
 
 
 

actionscript 传递 rest 参数  

2008-04-23 16:10:12|  分类: My Tech |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
参考eric feminella文章完成了一个demo.
demo
 
source

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    >
    <mx:Script>
        <![CDATA[
            /**
             *
             * according to this article:
             *     http://www.ericfeminella.com/blog/2008/04/22/passing-rest-parameters-between-functions/
             */
            private function foo1(callFoo2:Boolean,...rest):void
            {
                var n:int = rest.length;
                trace1("there are "+n+" parameters in foo1");
                for each(var para:* in rest)
                {
                    trace1("foo1:"+para);
                }
                if(callFoo2)
                {
                    foo2.apply(null,rest);
                }
            }
           
            private function foo2(...rest):void
            {
                var n:int = rest.length;
                trace1("there are "+n+" parameters in foo2");
                for each(var para:* in rest)
                {
                    trace1("foo2:"+para);
                }
            }
                       
           
            private function callFoo1():void
            {
                foo1(false,1,2,3,4,5);
            }
           
            private function callFoo2():void
            {
                foo2(6,7,8,9,10);
            }
           
            private function callFoo2InFoo1():void
            {
                foo1(true,1,2,3,4,5);
            }
           
            private function trace1(obj:*):void
            {
                if(results.text!="")results.text+="\r";
                results.text += obj.toString();
            }
        ]]>
    </mx:Script>
    <mx:Panel
        left="10"
        right="10"
        bottom="10"
        top="10"
        layout="absolute">
        <mx:Button label="call foo2(...foo2)" x="137" y="14" click="callFoo2();"/>
        <mx:Button label="call foo1(...rest)" x="10" y="14" click="callFoo1();"/>
        <mx:Text top="50" left="10" bottom="10" right="10" id="results"/>
        <mx:Button x="267" y="14" label="call foo2 in foo1" click="callFoo2InFoo1();"/>
        <mx:Button x="391" y="14" label="clear" click="results.text='';"/>
       
       
    </mx:Panel>
</mx:Application>
  评论这张
 
阅读(586)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017