• 奇爱公告:
  • 设为首页
  • |
  • 收藏本站
  • |
  • RSS阅读
  • |
  • 网站地图
  • |
  • 站内搜索
  • 奇爱素材网

  • 首页 酷站 PNG 矢量 GIF 笔刷 背景 PSD 欣赏 代码 FLA 教程 图库 书店
  • 您现在的位置: 奇爱素材网 >> 设计教程 >> 网页设计 >> Flash >> 正文 |
  • 愚人呓语的AS3学习笔记:Function

    作者:转载 素材来源:未知 点击数: 更新时间:2007-6-14 21:47:21

     首先,AS3里function的参数可以有默认值了。

    public function TestFunc(){
        myFunc();
    }
    private function myFunc(para1:int=10,para2:String="str"):void{
        trace(para1 + " , " + para2);    //10 , str
    }

      AS3里不能给出多余的参数,

    public function TestFunc(){
        myFunc(2,"3",4);
    }
    private function myFunc(para1:int,para2:String):void{
        trace(para1 + " , " + para2);
    }

    编译器给出参数不匹配的错误:ArgumentError: Error #1063: Argument count mismatch on TestFunc/TestFunc::myFunc(). Expected 2, got 3.
      这样以前那种用 arguments 拿到不固定参数的方法就不能用了。AS3给出一个新的关键字:… (rest) parameter

    public function TestFunc(){
        myFunc(2,"3",4,"5",true);
    }
    private function myFunc(para1:int,para2:String,... more):void{
        trace(para1 + " , " + para2);    //2 , 3
        trace(more);    //4,5,true
    }

      在固定的参数后面跟一个 “…” 和一个表达式(如例子中的“more”),“…” 后面所有的参数将被放到以该表达式命名的数组中。注意 “…” 必须是最后一个参数。

      如果使用 “…” arguments 就不可用了,自然也就拿不到 arguments.callee(对当前正在执行的函数的引用),所以在确定不使用 callee 的情况下才能用 “…”。

      提到 arguments ,arguments.caller 已经被 “remove” 了。要想拿到 caller 需要把调用函数的 callee 作为参数传给被调用函数。官方的例子:

    package {
        import flash.display.Sprite;
     
        public class ArgumentsExample extends Sprite {
            private var count:int = 1;
           
            public function ArgumentsExample() {
                firstFunction(true);
            }
     
            public function firstFunction(callSecond:Boolean) {
                trace(count + ": firstFunction");
                if(callSecond) {
                    secondFunction(arguments.callee);
                }
                else {
                    trace("CALLS STOPPED");
                }
            }
     
            public function secondFunction(caller:Function) {
                trace(count + ": secondFunction\n");
                 count++;
                 caller(false);
            }       
        }
    }

    小编物语:还是那句话,我们不是每个人都能对FLEX如此了解,但我们每个人都能够为我们兴趣做点点努力。只要你的一次点击,一次留言就能给作者更多的动力。国际惯例……集体至愚人呓语的窝灌水。

  • 上一篇教程: 用Flash制作不停转动的地球仪
  • 下一篇教程: 愚人呓语的AS3笔记:for each in
    • 提点建议 | 友情链接 | 广告服务 | 免责声明 | 联系我们 | 网站地图 | RSS阅读
      Copyright © 2006-2008 Www.72sc.coM, All Rights Reserved 版权所有 奇爱素材网 鄂ICP备07010427号
      ++技术交流QQ群号码:1226944 ++业务联系QQ:19295971