Показать сообщение отдельно
Старый 25.05.2013, 13:51
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 23  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
к примеру если нужно обработать клик пользователя, после чего отправить данные с полей на сервер, принять, закешировать и вывести.
Ну вообще, я бы делал так (писал в браузере, сори за возможные ошибки):

Код 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; //данные здесь уже разложены в удобные для работы места с удобными типами и т.д.
}