Цитата:
к примеру если нужно обработать клик пользователя, после чего отправить данные с полей на сервер, принять, закешировать и вывести.
|
Ну вообще, я бы делал так (писал в браузере, сори за возможные ошибки):
Код AS3:
private function clickHandler(event:MouseEvent):void{
var someCommand:SomeCommand = new SomeCommand('some data may be');
someCommand.run(); //команда держит как-то статикой ссылку на соединение с сервером, но здесь этого не видно. Принцип Hide Complexity
//на каждую команду - свой класс.
//вариант 1: в команду передается всё необходимое (например, ссылка на вью) и по приходу данных от сервера команда сама делает "парсинг" и всё остальное.
//т.е. каждая команда знает, что надо отправить на сервер и просит минимальное – что она не знает, и выполняется по ответу от сервера она тоже сама,
//дёргая нужные методы у вьюхи и добавляя содержимое.
//вариант 2: получили данные и делаем это дело в хэндлере
someCommand.addEventListener(Event.COMPLETE, onCommandDataReceived);
//вариант 3: два в одном, самый клёвый. Данные и парсятся, и стреляется событие. Если команду удобно "отпарсить" внутри её самой – она парсится там
//и, откуда она вызвана не захламлется. Одна строчка
new PingServer().run();
//найс! Ну, а если неудобно – вариантом 2. Иногда и там, и там – она и парсится, и дополнительно ещё здесь тянутся данные. Короче, как удобней, ну.
}
private function onCommandDataReceived(event:Event):void{
(event.currentTarget as SomeCommand).some_data; //данные здесь уже разложены в удобные для работы места с удобными типами и т.д.
}