在AS3方法中接受多个参数

时间:2009-12-16 13:26:43

标签: flash actionscript-3 methods arguments

如何在自定义方法中接受多个参数?像:

Proxy(101, 2.02, "303");

function Proxy(args:Arguments){
    Task(args);
}

function Task(var1:int, var2:Number, var3:String){ 
    // work with vars
}

2 个答案:

答案 0 :(得分:9)

你不能像你在问题中那样直接传递args数组。你必须单独传递args数组的每个元素。

function Proxy(... args)
{
   // Simple with no error checking.
   Task(args[0], args[1], args[2]);
}

<强> UDATE

阅读其中一条评论后,看起来你可以逃脱:

function Proxy(... args)
{
    // Simple with no error checking.
    Task.apply(null, args);

    // Call could also be Task.apply(this, args);
}

小心点。 apply()的性能明显慢于使用传统方法调用函数。

答案 1 :(得分:5)

您还可以使用apply(thisArg:*, argArray:*):*对象中的Function方法。

示例:

包{

    public class Test{
          public function Test(){
              var a:Array=[1,"a"];
              callMe.apply(this,a);
          }       
          public function callMe(a:Number,b:String):void{
                trace(a,b);
          }
    }
}