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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Question Почему не диспатчится ивент?

Код 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)) выполняется, и, я полагаю, прослушивателем является функция, переданная в качестве параметра при предыдущем вызове (т.е. та же самая). Но, еще раз повторюсь, вызова ее не происходит. Вопрос?