Показать сообщение отдельно
Старый 28.09.2009, 04:11
McRain вне форума Посмотреть профиль Отправить личное сообщение для McRain Найти все сообщения от McRain
  № 7  
Ответить с цитированием
McRain
 
Аватар для McRain

Регистрация: Mar 2009
Сообщений: 7
Функции была (и отчасти есть) возможность передавать, меня не устроило что, к примеру, если у моего объекта 20 переменных, то придется писать 40 функции обработки результата (ну или 20 если только обработку успешного получения). А если классов много - это вообще ужас.
Пока что описанный выше способ
Код AS3:
if(parent_a.hasOwnProperty(name_a)){
	parent_a[name_a] = c;
	}
вполне устроил, поскольку при вызове самой функции отправки запроса на сервер( в некотором Gate, в котором и создается RemoteObject) просто указывается строка с именем именно той переменной, значение полученного ответа которой и нужно присвоить.

Код AS3:
public class MyObject{
public var id:int = 0;
	public var targetParam:Array;
	public var secondParam:String;
	public var byteParam:ByteArray;
 
	private function getMyParam():void{
		gate.callRemote(this,"getMyParam","targetParam",resultFunc,faultFunc);
	}
}
так вот раньше приходилось эти самые resultFunc и faultFunc все время писать, где полученный результат присваивался целевому объекту.
теперь же (грубо) можно написать
Код AS3:
gate.callRemote(this,"getMyParam","targetParam",null,null);
и никаких функций больше.
Это существенно сокращает время.
Но это - довольно кривой путь - и суть топика в том, чтобы передавать не строку "targetParam" а сам targetParam.
Однако в RemoteObject, при обработке полученного от сервера ответа, я не могу присвоить targetParam ничего - я не его там вижу, а ссылку на него (или на объект, ссылкой на который он является - не суть важно).
Что ж, оставлю тогда так, как есть, большое спасибо за помощь.