2009-07-19 6 views
4

Ich kapsle einen Aufruf an einen Remoting-Dienst in meiner eigenen RemoteObject-Klasse. Das alles funktioniert gut, außer wenn ich mit Variablenparametern umgehen muss, die an den Remoteanruf übergeben werden. Da dies ein Aufruf an die NetConnection.call ist, sollte ich in der Lage sein, variable Argumente zu übergeben, aber da ich die NetConnection.call kapseln wird, gibt es Fehler. Das ist, was meine Methode sieht derzeit wie:Variable Argumente weiterleiten

public function call(method : String, callback : Function, ... args) : void 
{ 
    var responder : Responder; 

    responder = new Responder(callback, onResponderStatus); 

    this._nc.call(this._remoteObject + "." + method, responder, args); 
} 

Wie Sie sehen können, meine Methode nimmt einen variablen Argumente Parameter als letzter Parameter. Ich versuche, diese Parameter an die Methode NetConnection.call zu übergeben. Aber im Rahmen meiner Methode wäre args vom Typ Array. Wie leite ich die Variablenargumente richtig an NetConnection.call weiter?

Antwort

7

Function::apply ist das, was Sie suchen ... am Ende, es sollte wie folgt aussehen:

this._nc.call.apply(this._nc, [this._remoteObject + "." + method, responder].concat(args)); 

greetz

back2dos