Недавно в своем блоге писал о библиотеке для роботы с Вконтакте API. В библиотеке единственным обязательным классом служит APIConnection, который занимается контролем над потоком вызовов, а сами вызовы это VkontakteCall с самим сформированым запросом и обработчиками этого запроса. На экземпляры класса вешаются события успешной загрузки и ошибки в ответе а так же ошибки загрузки. Так вот товарищ
cleptoman написал, что создания отдельного кола - это не то что совсем бы хотелось от библиотеки и лучше бы если был класс который рулит запросами и диспатчит события . Идея отличная только вот не могу остановиться на реализации.
Переписал APIConnection и теперь он выглядит вот так:
Смотрите следующий пост ( есть ограничения форума на количество символов в посте, пришлось даже удалить даже часть вода в классе ).
APIConnection теперь не наследует класс EventDispatcher, а реализует интерфейс IEventDispatcher. Сделано было для того что бы можно было использовать привычные addEventListener() и removeEventListener() но с другой реализацией. Теперь у каждого кола есть уникальный тип события который есть же сигом запроса это кола.
События вешаются как обычно, но тип события же не имеет ни какого значения так как формируеться совсем другой и нужен скорее для ясности происходящего. Событие вешается только после того как добавили в поток вызовов кол.
Много думал может просто сделать обычные колбеки и не заморачиватся с событиями. Или же вешать события на класс сколько будет удобно а в самом обработчике события проверять от какого вызова метода пришол ответ и потом выполнять действия. Или же отставить все как есть и нечего не изменять.

Код AS3:
private function responseHandler1(e:VKResponseEvent):void
{
if ( e.method ) {
trace( e.method );
}
e.target.removeEventListener( VKResponseEvent.RESPONSE, responseHandler1 );
}
Хотелось бы услышать какие-нить мнения по этому поводу. Хочеться сделать либу максимально удобной в использовании.