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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.06.2012, 18:37
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 1  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Для хранения общих свойств, типа названия предмета, ссылки на картинку и т. п. Т. е. если у тебя есть однотипные предметы в инвентаре, у них всех ссылка на один и тот же прототип.
А, для экономии памяти, понятно.
Цитата:
Реализовать промежуточный класс с ленивым геттером основной модели. Так называемый ассет основной модели. Всё, кто в неё попадает, может получить на неё ссылку.
А чем плохо сразу тянуть ссылку на основную модель, без этих заморочек?

Старый 28.06.2012, 18:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
А, для экономии памяти, понятно.
Нет, просто копировать свойства в каждый новый экземпляр замучаешься и сравнивать их потом сложно.

Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
А чем плохо сразу тянуть ссылку на основную модель, без этих заморочек?
Тем и плохо, что надо тянуть и не забыть.

Цитата:
Сообщение от dimarik Посмотреть сообщение
А я разве сказал, что this._user ассет самого себя? Он ассет кого надо ассет. Какого-то юзеря. Может текущего персонажа. Удобно с текущим пером меряться. Он под рукой всегда.
Димка, я чето не понимаю, на каком языке ты разговариваешь. Юзер — это пользователь. Всё, что к нему относится — его ассеты и ему на него ссылку и вообще находятся в нём. В том числе и персонажи. Но как может быть юзер ассетом персонажа, я не очень понимаю.

Цитата:
Сообщение от dimarik Посмотреть сообщение
Ну поменяется отображаемый контейнер, если ты сверху вниз на стадии смены контейнера пересеттишь этот ассет. Я не вижу смысла тут пользоваться прослушиванием ADDED/REMOVED
Речь шла о том, что отслеживать смену юзера самому ассету незачем, т. к. есть более важные события, которые следуют в результате смены юзера, например тот же ADDED/REMOVED. И если их слушают во вьювере, этого достаточно, чтобы обновить данные в соответствии с новыми условиями и юзером.

Цитата:
Сообщение от dimarik Посмотреть сообщение
Это по стандарту так?
В контексте модели, обсуждаемой в этой теме, да. А в целом, при такой вложенности я не уверен, что вообще необходимо делать такие элементы ассетами кого-либо, если вообще имеет смысл держать такое в модели.


Последний раз редактировалось etc; 28.06.2012 в 18:49.
Старый 28.06.2012, 20:56
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от etc Посмотреть сообщение
Димка, я чето не понимаю, на каком языке ты разговариваешь. Юзер — это пользователь. Всё, что к нему относится — его ассеты и ему на него ссылку и вообще находятся в нём. В том числе и персонажи. Но как может быть юзер ассетом персонажа, я не очень понимаю.
А, все! Я вроде андерстенд! У тебя персонажи и пользователи разделены. По той причине, что у одного пользователя может быть несколько персов. Я же, каюсь, в силу привычки к своему проекту, в котором один пользователь — один персонаж, не сразу догнал, о какой UserData идет речь.

Но этот посыл ровным счетом ничего не меняет. Все будет зависеть от глубины и ширины модели. Вот я к чему.
Пуш/пуль. Вот в чем камень преткновения! Когда push становится быстрее pull и наоборот? Никакие остальные рассуждения о конкретике реализации не имеют смысла. Вполне возможно, что эта величина вычислима на основе количества объектов, агрегируемых другим.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 28.06.2012, 19:09
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Тем и плохо, что надо тянуть и не забыть.
Главная модель для меня всегда находится в вершине иерархии. Если композит моделей перенести на дисплей обджект, то это stage / root, ссылка тянется самой структурой.

Старый 28.06.2012, 19:17
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Главная модель для меня всегда находится в вершине иерархии. Если композит моделей перенести на дисплей обджект, то это stage / root, ссылка тянется самой структурой.
А, я думал про «тянуть» имелось ввиду передавать вниз по иерархии. Если имеется ввиду сразу дергать линк, то ничего плохого в этом нет, кроме бесполезно потраченного времени.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Сообщение от etc Посмотреть сообщение
А, я думал про «тянуть» имелось ввиду передавать вниз по иерархии. Если имеется ввиду сразу дергать линк, то ничего плохого в этом нет, кроме бесполезно потраченного времени.
Вниз - это от предка к потомкам?
Когда контейнеру делают addChild у него автоматом устанавливается parent и root. Когда нужен root - сразу дёргают root, без поиска его по ленивым геттерам. Где тут бесполезно потраченное время, не понимаю?

@Инквизитор: тебя я тоже совсем не понимаю )
Можно на пальцах?

Старый 28.06.2012, 23:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Вниз - это от предка к потомкам?
Когда контейнеру делают addChild у него автоматом устанавливается parent и root. Когда нужен root - сразу дёргают root, без поиска его по ленивым геттерам. Где тут бесполезно потраченное время, не понимаю?
Да хотя бы взять дерево, не добавленное в рут изначально, с толпой детей. Добавили в рут, посидели и покурили, пока оно раздаст руты всем киндерам. Но зачем? Геттер тупит единственный раз и явно меньше по времени, чем раздача рута абсолютно всем.

Добавлено через 50 секунд
Цитата:
Сообщение от dimarik Посмотреть сообщение
Но этот посыл ровным счетом ничего не меняет. Все будет зависеть от глубины и ширины модели. Вот я к чему.
Пуш/пуль. Вот в чем камень преткновения! Когда push становится быстрее pull и наоборот? Никакие остальные рассуждения о конкретике реализации не имеют смысла. Вполне возможно, что эта величина вычислима на основе количества объектов, агрегируемых другим.
Это всё можно реализовать гибридным способом, где-то push, где-то pull. Но сомневаюсь, что когда-нибудь этим займусь.

Добавлено через 1 минуту
Цитата:
Сообщение от incvizitor Посмотреть сообщение
Зачем сразу устанавливать рут? Разве его нельзя забрать рекурсивно?
В предложенном варианте будет пробегать всякий раз при обращении к геттеру. Это не есть гут.

Старый 28.06.2012, 19:17
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 8  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Psycho Tiger, ну тогда получится что DataBase придется экстэндить, и все потомки (которые хотят обращатся к прототипам) будут знать тип нашей БД. А если использовать ленивый геттер, то мы не знаем что в иерархии является IPrototypeHolder у которой можно забрать прототипы.
__________________
ranga

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Зачем сразу устанавливать рут? Разве его нельзя забрать рекурсивно?

На пальцах:

Код AS3:
public function getPrototypeHolder():IPrototypeHolder{
     var parentNode:DataContainer = parent;
     while(parentNode){
          if(parentNode is IPrototypeHolder){
                return parentNode as IPrototypeHolder;
          }
          parentNode = parentNode.parent;
     }
     throw new Error("not found");
}
Мы не знаем что это именно ДБ явлеятся (ведь может быть и нет) IPrototypeHolder, мы просто знаем что он есть среди родителей.
__________________
ranga

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Позвольте все эти вышеозначенные вопросы свести все-таки к пушпулю. Итак, все рассуждения сводятся к тому, как красивше в дереве прокидывать ссылки на листья/ветки к другим листьям/веткам. Никто не находит это логичным?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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