Показать сообщение отдельно
Старый 28.02.2011, 19:51
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Я бы делал так:
список классов-сообщений: MessageA, MessageB... MessageZ, все наследуются от Message
у каждого есть метод clone(from:XML):Message который читает содержание из потока и создают свою копию исходя из полученных данных. Прийдется создать по экземпляру (лишнему) каждого сообщения, но, я не думаю, что это прям такая нагрузка, зато удобно.
T.е. у вас будет таблица, например:
Код AS3:
private static const MESSAGES:Object = { messageA: new MessageA(), messageB: new MessageB() . . . };
private function parse(event:ProgressEvent):void
{
    var messageXML:XML = XML(this._socket.readUTFBytes(this._socket.bytesAvailable));
    var message:Message = (MESSAGES[messageXML.localName()] as Message).clone(messageXML);
    . . .
}
__________________
Hell is the possibility of sanity