Все как всегда зависит от деталей задачи
Начинаем с простого:
- делаем класс задачи Вашему классу:

Код AS3:
class Task
{
public function new(url:String)// Урл чего Вы там грузите и может еще некоторые нужные данные для обработки запроса
public function get url():String;
public var result:ResultType;//Какого там типа результат нужно получить
pulbic var callback:Function;
}
Делаем обработчик (это тот самый класс, про который спрашиваете как организовать), для начала покатит статический:

Код AS3:
class TaskExecutor
{
private static var _task:Task;
public static function execute(task:Task)
{
_task = task;
....
//запускаем асинхронные процесы - загрузку и т.д. и т.п.
_loader.load(new UrlRequest(task.url))
....
}
private static function onLoad(event:Event):void
{
//все что надо загрузили, результат получили, делаем так:
_task.result = result;
_task.callback(task);
}
}
Как использовать:

Код AS3:
var task = new Task('мой URL');
task.callback = onComplete;
TaskExecutor.execute(task);
private function onComplete(task:Task):void
{
var reslut = task.result// Ура! Мы дождались результата!
}
Ну а дальше, если потребуется обрабатывать несколько запросов - организуем очередь, потом очередь с приоритетом, обработку ошибок и т.д. и т.п.
И да, если о завершении обработки задания должно быть оповещено несколько объектов - наследуем Task от EventDispatcher и работаем не с колбеками, а событиями