![]() |
Цитата:
А если и сменится, это в любом случае произойдёт в результате ADDED/REMOVED, т. е. заведомо более важного события. Самим ассетам отслеживать момент смены не нужно, просто незачем. |
UserData вполне себе может быть IUserAsset, кстати. И UserData#user может указывать, например, на персонажа текущего пользователя. Лишняя проверка убирается.
Добавлено через 1 минуту ADDED/REMOVED еще продиагностировать нужно, от кого пришло. А если глубина вложенности большая, то только и будешь определять target.parent с currentTarget |
Цитата:
ADDED/REMOVED слушают и диагностируют те, кому это нужно, просто в любом случае смена юзера означает изменение контейнера, а значит в представлении точно также поменяется отображаемый контейнер и это будет уже другой вьювер. |
this._user.contains(this) при глубоком (IUserAsset находится в энном колене) и широком (обладатель этого ленивого геттера находится на тысячной позиции) дереве будет чутка тормозить.
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Ну поменяется отображаемый контейнер, если ты сверху вниз на стадии смены контейнера пересеттишь этот ассет. Я не вижу смысла тут пользоваться прослушиванием ADDED/REMOVED Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Psycho Tiger, ну тогда получится что DataBase придется экстэндить, и все потомки (которые хотят обращатся к прототипам) будут знать тип нашей БД. А если использовать ленивый геттер, то мы не знаем что в иерархии является IPrototypeHolder у которой можно забрать прототипы.
|
Цитата:
Когда контейнеру делают addChild у него автоматом устанавливается parent и root. Когда нужен root - сразу дёргают root, без поиска его по ленивым геттерам. Где тут бесполезно потраченное время, не понимаю? @Инквизитор: тебя я тоже совсем не понимаю ) Можно на пальцах? |
Зачем сразу устанавливать рут? Разве его нельзя забрать рекурсивно?
На пальцах: Код AS3:
|
Цитата:
Но этот посыл ровным счетом ничего не меняет. Все будет зависеть от глубины и ширины модели. Вот я к чему. Пуш/пуль. Вот в чем камень преткновения! Когда push становится быстрее pull и наоборот? Никакие остальные рассуждения о конкретике реализации не имеют смысла. Вполне возможно, что эта величина вычислима на основе количества объектов, агрегируемых другим. |
Цитата:
Добавлено через 50 секунд Цитата:
Добавлено через 1 минуту Цитата:
|
Позвольте все эти вышеозначенные вопросы свести все-таки к пушпулю. Итак, все рассуждения сводятся к тому, как красивше в дереве прокидывать ссылки на листья/ветки к другим листьям/веткам. Никто не находит это логичным?
|
Цитата:
|
Цитата:
|
incvizitor, etc
Вы как смотрите на мою локализацию проблемы? |
что именно, создавать кеш или чистить его, или и то и другое?
Добавлено через 52 секунды @dimarik, ок, ща про кеш договорим только =) |
Цитата:
|
Цитата:
|
Цитата:
|
Вложений: 1
А если есть такая структура:
http://www.flasher.ru/forum/attachme...1&d=1345396959 Стоит задача отобразить красным ресурсы которых не достаточно для покупки предмета. Как лучше протягивать баланс юзера в модельку shopItem? |
скрин улетел
|
Цитата:
Добавлено через 1 минуту блин, и на клип2нет линк вырезается.. |
вставь вложение
|
Цитата:
Либо DB должна при запросе создания shop должна отсылать вам кеш , а создавать итем будете уже передавая в него кеш. Либо есть более изящный вариант : В итеме подписываемся на событие добавления на сцену, из итема диспатчим событие шопу ( или чего у вас там вьюха) , ну а в шопе имеем баланс уже ( надеюсь ) , от него и рассылаем итемам задачу сменить цвет |
Цитата:
ShopItem имплементит IComparator, с его методом compare. Метод принимает список ComparisonObject и возвращает Boolean (подошло/не подошло). У каждого магазина, его коллекции ShopItem'ов, самого ShopItem есть ссылка на User. User поддерживает интерфейс IComparable, метод которого getComparisonList(глагол):Vector.<ComparisonObject>, возвращает список доступных для сравнивания ComparisonObject; getComparisonList извлекает предварительно подготовленные списки ComparisonObject. Их формированием и обновлением занимается сам IComparable, правила для этого находятся в нем. Сама проверка можно ли купить предмет, с учетом скилов User и количества требуемой валюты сводится к одной строке Код AS3:
Достаточно накидать в нее некоторое количество shopItem, а затем и с ней провести сравнение. Код AS3:
Итак, можно сравнивать все и вся, лишь бы была коллекция условий и то, с чем сравниваем. Можно померяться скилами UserData с коллекцией UserCollection. Код AS3:
|
А если приложение не связано с сетью и есть класс в который встроена вся графика и XML с некоторыми данными этот класс можно считать Model и по команде от Controller - View будет брать у него графику через геттер? Или вся графика сразу должна встраиваться во View?
|
хмл - модель.
графика - вью. В хмл могут быть ссылки на аасеты к примеру, тогда в модели будут урлы по которым вьюха сможет достать нужный ассет. Или если графика заэмбежена - то бы сделал некий манагер, а в модели бы хранил ид-ы по которым вьюха сможет из манагера достать ассет. Как-то так. А вообще по ситуации смотреть надо. В идеале должно быть так чтоб модель ничего не знала об ассетах. Чтобы можно было на одну модель повесить несколько вьюх, которые одни и те же данные по-разному отображают. |
Наверное тогда класс в котором встроены все ресурсы будет каким-то хранилищем, а в модели будут храниться id. Условие такое, что скомпилиная флешка должна быть самодостаточной, то-есть в неё всё должно быть встроено и хочется, чтоб всё встроенное было в одном месте. В XML храняться данные о вершинах которые нужно парсить и больше ничего.
|
думаю норм будет.
|
И ещё вопросик, если есть кнопки, то они располагаются в View и диспетчат событие контроллеру или они публично открыты для контроллера и слушаются в нём?
|
Контроллер не знает про внутренности вьюхи, он слушает только ее.
А там уже вьюха шарит какое событие выпускать наружу при клике на кнопку. Варианты могут быть разные. Можно из кнопки бабблить транзитом через вьюху. А можно во вьюхе слушать кнопку "открыть профиль" и например клик по аватаре, и на оба этих внутренних события в контроллер выпускать только одно событие: "покажи профиль". |
Понятно, значит во вьюхе диспатчить буду.
Цитата:
_view.updateSquares().someElse; ? |
Цитата:
А то что вьюха постоянно слушает модель на предмет изменений и согласно этому рендерится вроде как вопросов вызывать не должно?:) |
Цитата:
|
Тебе на первую страницу и читать сначала в таком случае....
Добавлено через 2 минуты * Во-перых какие это данные в моделях должны с частотой раз в кадр меняться? * Во-вторых что энтерфрейм делает в контроллере. * В третьих кто сказал что рендер во вьюхе должен быть целиком - получил маяк - целиком перерисовалась. Из модели шлются микросообщения: "поменялось такое вот данное" а вьюха меняет "такое вот поле". Одно поле, а не вся перерисовывается. |
Цитата:
|
| Часовой пояс GMT +4, время: 03:13. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.