사용자 지정 메서드에서 여러 인수를 허용하려면 어떻게합니까? Like :AS3 메서드에서 여러 인수 허용
Proxy(101, 2.02, "303");
function Proxy(args:Arguments){
Task(args);
}
function Task(var1:int, var2:Number, var3:String){
// work with vars
}
사용자 지정 메서드에서 여러 인수를 허용하려면 어떻게합니까? Like :AS3 메서드에서 여러 인수 허용
Proxy(101, 2.02, "303");
function Proxy(args:Arguments){
Task(args);
}
function Task(var1:int, var2:Number, var3:String){
// work with vars
}
질문과 마찬가지로 args 배열을 전달할 수 없습니다. args 배열의 각 요소를 별도로 전달해야합니다.
이function Proxy(... args)
{
// Simple with no error checking.
Task.apply(null, args);
// Call could also be Task.apply(this, args);
}
그냥주의 : 당신은 멀리로 얻을 수있는 것처럼
function Proxy(... args)
{
// Simple with no error checking.
Task(args[0], args[1], args[2]);
}
는 Udate
는 코멘트를 읽은 후, 그것은 보인다. apply()의 성능은 기존 메서드로 함수를 호출하는 것보다 상당히 느립니다.
Function
개체의 apply(thisArg:*, argArray:*):*
메서드를 사용할 수도 있습니다.
예 :
패키지 {
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);
}
}
}
당신이 확실 AS3로 붙박이 인수로 변환됩니다 인수의 배열을 전달 할 수있는 방법이 없다? 아니면'arg [0]'과'arg [1]'을 사용할 필요가 없도록 Task 함수를 작성하는 더 깨끗한 방법이 있습니까? –
이 방법이 가장 정확합니다. 알 수없는 인수를 전달해야하는 경우 함수에서도 apply 메소드를 사용할 수 있습니다. _obj.methodName.apply (_obj, [arg1, arg2, arg3]); –
다음은 apply 메소드에 대한 문서입니다. http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Function.html#apply%28%29 –