2011-03-10 6 views
3

내 질문이 질문의 플렉스 전치된다패스 인수

입니다 Can I pass an array as arguments to a method with variable arguments in Java?

, 나는 몇 가지 액션 스크립트 코드의 배열이 그리고 배열에 색인 된 모든 객체를 메소드 method(...arguments)으로 전달해야합니다.

일부 코드

는 명확하게하기 : 댓글이 제안 일을 할 수있는 방법이

private function mainMethod():void{ 
    var myArray:Array = new Array("1", "2", "3"); 
    // Call calledMethod and give it "1", "2" and "3" as arguments 
} 

private function calledMethod(...arguments):void{ 
    for each (argument:Object in arguments) 
     trace(argument); 
} 

있습니까?

답변

10

Function 개체 자체를 살펴볼 수 있습니다. 그것은 작동합니다()를 적용 호출 :

private function mainMethod():void 
{ 
    var myArray:Array = new Array("1", "2", "3"); 

    // call calledMethod() and pass each object in myArray individually 
    // and not as an array 
    calledMethod.apply(this, myArray); 
} 

private function calledMethod(... args):void 
{ 
    trace(args.length); // traces 3 
} 

더 많은 정보 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Function.html#apply()

+0

정말 감사합니다. – Dunaril

+0

아름다운! 며칠 전 나 자신에게이 정확한 문제가 있었다. –

1

컴파일러가 원하는 것을 추측하기가 어렵습니다. Array 형식의 인수 하나를 전달 하시겠습니까, 아니면 배열의 요소를 전달 하시겠습니까? 컴파일러는 가정용으로 간다.

+0

이 문제를 회피 할 수있는 방법은 없습니까? – Dunaril

0

그 ... 인수를 확인하는 방법을 위해 기다리고 하나의 객체이다. 매개 변수를 사용하여 여러 요소 나 (이 경우) 하나의 배열을 전달할 수 있습니다.

예 :

function mainMethod():void 
{ 
    //Passing parameters as one object 
    calledMethod([1, 2, 3]); 

    //Passing parameters separately 
    calledMethod(1, 2, 3); 
} 

function calledMethod(...args):void 
{ 
    for each (var argument in args) 
    { 
     trace(argument); 
    } 
} 

mainMethod(); 

는 희망이 도움이

, 롭

+0

죄송하지만 도움이되지 않습니다. 내 질문에 구체적으로 배열에 포함 된 개체 같은 메서드에 전달하는 문제를 해결합니다. 즉, 메서드 호출시 이러한 개체를 명시 할 수 없습니다. – Dunaril

+0

내 잘못, 미안 해요 :) – robertp