Всем привет. Столкнулся с проблемой, не могу решить.
Сначала приведу код. У меня есть 2 класса:
QueryAMF

Код AS3:
package main{
import flash.net.NetConnection;
import flash.net.Responder;
import flash.events.NetStatusEvent;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.events.AsyncErrorEvent;
public class QueryAMF {
private var netConnection:NetConnection = new NetConnection;
public function QueryAMF() {
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
netConnection.addEventListener(IOErrorEvent.IO_ERROR, ioErrorEventHandler);
netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
netConnection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
if (!netConnection.connected) {
netConnection.connect(Main.gateway);
}
}
public function request(requestObj:Object):void {
netConnection.call(requestObj.target,requestObj.responder,Main.viewerID,getHash(requestObj.params),requestObj.params);
}
private function getHash(params:String):String {
return MD5.encrypt(Main.authKey + params);
}
private function netStatusHandler(e:NetStatusEvent):void {
trace("Ошибка: " + e.info.code + " Пояснение: " + e.info.description);
}
private function ioErrorEventHandler(e:IOErrorEvent):void {
trace(e);
}
private function securityErrorHandler(e:SecurityErrorEvent):void {
trace(e);
}
private function asyncErrorHandler(e:AsyncErrorEvent):void {
trace(e);
}
}
}
Main

Код AS3:
package main{
import flash.display.MovieClip;
import flash.net.Responder;
public class Main extends MovieClip {
public static const gateway:String = "http://localhost/gateway.php";
public static var viewerID:String = "99999";
public static const apiID:String = "33333333";
public static var authKey:String;
public function Main() {
var apiSecret:String = "XXXXXXXXXXXXXXX";
authKey = MD5.encrypt(apiID + '_' + viewerID + '_' + apiSecret);
var responder:Responder = new Responder(onResult,onFault);
var requestObj:Object = new Object;
requestObj.target = "Autorize.read";
requestObj.responder = responder;
requestObj.params = "11111";
var queryAMF:QueryAMF = new QueryAMF;
queryAMF.request(requestObj);
}
private function onResult(e:Object):void {
trace(e);
}
private function onFault(e:Object):void {
if (e.code != undefined) {
trace("Ошибка: " + e.code + " Пояснение: " + e.description + " Файл: " + e.details);
} else {
trace("Ошибка: " + e.faultCode + " Пояснение: " + e.faultString + " Файл: " + e.faultDetail);
}
}
}
}
В классе Main я вызываю метод request класса QueryAMF и передаю в него объект requestObj. В методе request в netConnection.call() передаются постоянные параметры: target, responder, viewerID, hash и переменные(все остальные). Проблема в том, что переменных параметров может быть от 1 и больше. Как мне передать в объекте неопределённое количество параметров в netConnection.call().
Нашел в справке function apply(), но не понял куда её воткнуть.