
Код AS3:
public function addObject(clan:int, key:String, name:String, x:int, y:int, desc:String, onResult:Function = null):void
{
if (onResult != null)
addObjectResult = onResult;
if (addObjectResult != null)
if (!service.getOperation('addObject').hasEventListener(ResultEvent.RESULT))
service.getOperation('addObject').addEventListener(ResultEvent.RESULT, addObjectResult);
service.getOperation('addObject').send(clan, key, name, x, y, desc);
}
Это кусок кода из модуля (<s:Module/>), содержащего <s:RemoteObject/> (id="service") и помещенного в отдельный проект библиотеки.
В нем так же присутствует публичная переменная addObjectResult. Этот кусок кода замечательно работает при первом вызове. Я передаю onResult, и этот метод благополучно вызывается по событию. Но при последующих вызовах этого не происходит. Условие if (!service.getOperation('addObject').hasEventListener(ResultEvent.RESULT)) выполняется, и, я полагаю, прослушивателем является функция, переданная в качестве параметра при предыдущем вызове (т.е. та же самая). Но, еще раз повторюсь, вызова ее не происходит. Вопрос?