|
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
лучше так
package ***.model.vo { public class RecordInfoVO { //private var public static function parseXML(data:XML):RecordInfoVO { var vo:RecordInfoVO = new RecordInfoVO(); vo._contentName = data.content.name; vo._contentUrlkey = data.content.urlkey; vo._contentPerformer = data.content.performer; vo._recordId = data.record.id; vo._recordUsername = data.record.username; vo._recordRate = data.record.rate; vo._recordFlvUrl = data.record.flvurl; vo._recordPreviewUrl = data.record.previewurl; vo._contentUri = data.content.uri; vo._recordHasVideo = Boolean(data.record.hasvideo); return vo; } public function RecordInfoVO() { } //public get function } } |
|
|||||
Modus ponens
|
У XML есть несколько существенных недостатков:
<foo bar="100"/> - bar число или строка, если число, то какой разрядности? SQL таким не страдает. <foo><bar/></foo><foo><bar/></foo> - первый bar и второй - это один и тот же объект, или нет? AMF этим не страдает. В SQL можно договориться, что ключи - это ссылки, а остальные значения - всегда не-ссылки. Для AIR, наверное, самым правельным было бы использовать встроенный SQL, для веб - я бы наверное все-таки написал какой-нибудь конвертор на том же AIR, который бы нужные данные экспортировал в AMF и потом бы я их просто встраивал / загружал - что по ситуации подходит.
__________________
Hell is the possibility of sanity |
|
|||||
Если использовать выше указанные классы, то первый недостаток - таковым не является.
Если писать нечто универсальное, то да. Вот второй недостаток уничтожается при "десериализации" в нормальные объекты, при использовании вышеуказанных методов.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
.
|
Цитата:
Добавлено через 9 минут Цитата:
Добавлено через 12 минут Цитата:
Добавлено через 21 минуту Цитата:
null зачем? Вероятно, лоадер будет использоваться еще не один раз. Каждый раз создавать заново лоадер? Это антиоптимизация. |
|
|||||
Обычно поступаем так:
Есть конфиг клиента - это просто список поле-значение в xml, причем если через флеш-варс передали такое же поле как в конфиге - оно перетирается (это позволяет использовать конфиг лежащий на сервере, поправляя данные в HTML-ке чтобы грузиться локально - ну это если лень локальный конфиг создавать полностью). В конфиге обычно храниться информация что откуда брать - то, что зависит от места запуска флешки, не более. Остальные данные от сервера делятся на статические и динамические. Динамические - это то, что клиент получает, отправляя запросы Статические - это так называемые "справочники" - там начиная от списка товаров с параметрами, заканчивая геометрией "фермы" и общими с сервером константами На клиенте представлены набором классов, которые парсят их в типизированные объекты, типа public class ShopDictionary { public function parseXML(xml:xml):void {...} public function get items():Vector<Item> {} } // или public class VegetablesDictionary { public function parseXML(xml:XML) public function getByType(type:int):Vegetable; } Цитата:
- фильтры могут зависеть от динамических параметров - фильтры всетки больше логик отображения чем данных Поэтому фильтрация идет обычно прямо в классе диалогового окна, или в классе-контроллере диалогового окна (если окно повторно используется в нескольких местах) Последний раз редактировалось expl; 17.12.2011 в 00:22. |
|
|||||
.
|
Цитата:
Добавлено через 4 минуты Тупые серверы всегда так поступают. Статика вполне может быть скомпилена в swf c необходимой структурой. А чуть подразгонятся, то и динамика туда же. Последний раз редактировалось dimarik; 16.12.2011 в 23:42. |
|
|||||
Да? Т.е. вы не одобряете необходимость парсинга? или формат?
Еще есть проблема: "как эту swf серверу парсить - он же те же данные использует?" Но было бы интересно узнать подробности про способ и преимущества загона в swf |
|
|||||
.
|
Совершенно не одобряю этой суеты, вы правильно подметили. Мне на работе это обрыдло.
Разговор зашел о якобы "парсинге". Преобразование одного и того же по сути, но запечатленного в разных конструкциях. Давайте просто говорить на одном языке. Клиент умеет много гитек, в т.ч. заниматься ненужными конвертациями, высокопарно названными "парсингом". Последний раз редактировалось dimarik; 16.12.2011 в 23:52. |
|
|||||
.
|
- Простите, не понял;
- Генерирует сервер по протоколу; - Клиент получает объект (character, item, что-то еще, что я упустил). Альтернативе (3Д, которая) не откажешь в гибкости. Последний раз редактировалось dimarik; 17.12.2011 в 00:04. |
Часовой пояс GMT +4, время: 12:10. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|