Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.12.2011, 17:40
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 21  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
лучше так
Код AS3:
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
    }
}
Код AS3:
var recordInfoVO:RecordInfoVO = RecordInfoVO.parseXML(data);

Старый 16.12.2011, 17:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 22  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
У 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

Старый 16.12.2011, 18:23
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 23  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Если использовать выше указанные классы, то первый недостаток - таковым не является.
Если писать нечто универсальное, то да.

Вот второй недостаток уничтожается при "десериализации" в нормальные объекты, при использовании вышеуказанных методов.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 16.12.2011, 23:08
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 24  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от -De- Посмотреть сообщение
(POD классы).
Цитата:
Сообщение от Wikipedia, the free encyclopedia
Computers

Ping of death, a type of attack on a computer
Plain Old Data structure, a term for all data types from the C programming language in C++
Plain Old Documentation, a platform-independent documentation tool for the computer language Perl
Point of Delivery, a module or group of network, computer, storage, and application components that work together to deliver a network service
Power-on diagnostics, also known as the power-on self-test, the start up sequence of computers before the pperating system is loaded
Python Open Document
Какой именно POD подразумевался?

Добавлено через 9 минут
Цитата:
Сообщение от carrotoff Посмотреть сообщение
Можно, я на ты
Вань, это вопрос преобразования данных. Я их также могу пропускать через некоторый посредник, преобразовывая в удобоваримый тип. И этот удобоваримый тип также может быть XML, а не массив объектов. Вот.
Подтверждение того, что клиент сильно зависит от внешней среды (протокола). При этом можно бесконечно создавать десериализаторы (посредники, в тексте), если среда неоднородна. А приложение — это комплекс клиентской и серверной стороны. Договаривайтесь о протоколах.

Добавлено через 12 минут
Цитата:
Сообщение от Genzo Посмотреть сообщение
Код AS3:
private function onSucces(e:Event):void
        {
            this._loader.removeEventListener(Event.COMPLETE, onSucces);
            ...
            super.dispatchEvent(new XMLLoaderEvent(XMLLoaderEvent.DATA_LOADED , data));     
        }
super, если не переопределили.

Добавлено через 21 минуту
Цитата:
Сообщение от Genzo Посмотреть сообщение
Код AS3:
private function onSucces(e:Event):void
        {
                this._loader.close();
                this._loader = null
 
        }
Это зачем? close() вообще не понятно для чего. У вас там потоковая загрузка? Long-poll?
null зачем? Вероятно, лоадер будет использоваться еще не один раз. Каждый раз создавать заново лоадер? Это антиоптимизация.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 16.12.2011, 23:36
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 25  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Обычно поступаем так:

Есть конфиг клиента - это просто список поле-значение в xml, причем если через флеш-варс передали такое же поле как в конфиге - оно перетирается (это позволяет использовать конфиг лежащий на сервере, поправляя данные в HTML-ке чтобы грузиться локально - ну это если лень локальный конфиг создавать полностью). В конфиге обычно храниться информация что откуда брать - то, что зависит от места запуска флешки, не более.

Остальные данные от сервера делятся на статические и динамические.
Динамические - это то, что клиент получает, отправляя запросы
Статические - это так называемые "справочники" - там начиная от списка товаров с параметрами, заканчивая геометрией "фермы" и общими с сервером константами
На клиенте представлены набором классов, которые парсят их в типизированные объекты, типа
Код AS3:
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.
Старый 16.12.2011, 23:37
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 26  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Nooob Посмотреть сообщение
лучше так
Код AS3:
package ***.model.vo
{
    public class RecordInfoVO
    {        
        public static function parseXML(data:XML):RecordInfoVO
        {
            var vo:RecordInfoVO = new RecordInfoVO();
            vo._contentName = data.content.name;
            ...
            return vo;
        }
Код AS3:
var recordInfoVO:RecordInfoVO = RecordInfoVO.parseXML(data);
А можно и заранее сделать рыбу-модель и разбирать значения в нее, уже готовую. В вашем случае нет никакого оповещения ("приватки" же задаете) об изменении модели.

Добавлено через 4 минуты
Цитата:
Сообщение от expl Посмотреть сообщение
Обычно поступаем так:
Тупые серверы всегда так поступают. Статика вполне может быть скомпилена в swf c необходимой структурой.
А чуть подразгонятся, то и динамика туда же.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 16.12.2011 в 23:42.
Старый 16.12.2011, 23:46
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 27  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Код AS3:
Статика вполне может быть скомпилена в swf c необходимой структурой.
Да? Т.е. вы не одобряете необходимость парсинга? или формат?
Еще есть проблема: "как эту swf серверу парсить - он же те же данные использует?"

Но было бы интересно узнать подробности про способ и преимущества загона в swf

Старый 16.12.2011, 23:48
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 28  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Совершенно не одобряю этой суеты, вы правильно подметили. Мне на работе это обрыдло.

Разговор зашел о якобы "парсинге". Преобразование одного и того же по сути, но запечатленного в разных конструкциях. Давайте просто говорить на одном языке. Клиент умеет много гитек, в т.ч. заниматься ненужными конвертациями, высокопарно названными "парсингом".
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 16.12.2011 в 23:52.
Старый 16.12.2011, 23:57
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 29  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Все-таки хотелось бы узнать:
- что идет на входе в swf
- как с этой swf работает сервер (или она генерится сервером? тогда по каким данным?)
- что получает клиент из этой swf и как с ней работает

Старый 17.12.2011, 00:00
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 30  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
- Простите, не понял;
- Генерирует сервер по протоколу;
- Клиент получает объект (character, item, что-то еще, что я упустил).

Альтернативе (3Д, которая) не откажешь в гибкости.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 17.12.2011 в 00:04.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.