![]() |
события update для скроллеров
Таков вот вопрос. Скроллер по маус-мув делает обновление контента ( тащит по y ) - все стандартно.
Интересует как лучше повесить событие апдейта , когда маус мув не используется, а именно - При изменении внутренности контента. Тоесть например, прокрутили мы до середины контента, нажали кнопочку и сменили чайлды контента - нужен апдейт, или же никуда не крутили, но контент стал меньше маски ( скролл теперь не нужен ) - нужен апдейт на это. По логике нужно создать какое то событие типа евент.CHANGE - для контента? Но при каком случае туда писать? Вариант с изменением кол-ва чайлдов отпадает, это ясно. |
Слушать ENTER_FRAME у контейнера в котором лежит контент и при изменении размеров делать то, что нужно.
|
Событие фрейма очень мне не нравится, зачем обновлять постоянно счетчик, когда с ним вообще не работают? нафига эти лишние нагрузки.
|
Какой ещё счетчик? ENTER_FRAME шлется всегда и везде. Какая ещё нагрузка? На проверку условия из двух параметров?
Код AS3:
|
ENTER_FRAME однозначно.
|
Ну если так хочется без ентер-фрейма - ты знаешь когда и где может произойти смена состояния контейнера. Диспатч событие по клику или по чему там еще.
|
Цитата:
|
Цитата:
|
для текста есть соответствующее событие change
любое изменение в контенте всегда можно отследить именно в момент изменения, нет никакой необходимости проверять состояние контента в каждом кадре |
derhab, да оно не всплывает. Не говоря уже о простом движении элементов.
Лично я за событие RESIZE. |
Цитата:
с движением да, сложнее |
Цитата:
Что страшного в ENTER_FRAME? Сто лет назад написал скролл который который принимает Любой визуальный контент, и имеет обработчик ENTER_FRAME. Из проекта в проект пользуюсь им ничего не меняя. |
derhab, не всплывает CHANGE.
|
Цитата:
С анимациями внутри, если меняется размер контента при этом, то конечно то что я предложил не катит. Цитата:
просто в данном случае избыточно, я уже написал... |
derhab, сорри, событие оказалось всплывающим. Кошмар.
|
да, вот я тоже смотрю и думаю.. )
etc, а как тут RESIZE может помочь? Оно ж при изменении размеров Stage рассылается |
Он про кастомный говорит.
|
Цитата:
|
Я отказался от Event.ADDED и Event.REMOVED. Уж очень накладно получается. Шлют их из кроны все кому не лень. А про ENTER_FRAME была шутка.
|
Цитата:
Добавлено через 8 минут Цитата:
если я подписываю объект(контейнер куда будут добавляться дети) на Event.ADDED, то событие срабатывает в 2-х случаях, когда сам контейнер добавлен на сцену и когда в него добавляются дети. В обработчике нужно только исключить первый вариант. То же самое с Event.REMOVED. Или я чего-то не понял? |
Никакой панацеи нет, надо разрабатывать свою архитектуру. Посмотри, как это сделано во флексе. Нужено решение один раз и навсегда — надо городить архитектуру аля флекс. Для конкретного случая — придётся что-то хардкодить-жёсткозавязывать, т.е. учитывать как изменяется контент "вручную". Насчёт ENTER_FRAME это явно подкололи.
|
Цитата:
Добавлено через 51 секунду Событие всплывающее. |
Делать универсальный скроллер на всё и вся с отслеживанием изменения размеров контента по ENTER_FRAME не самая удачная затея. Такой скроллер подойдёт чайникам, например.
|
Да это понятно, значит ресайз будет тру
|
| Часовой пояс GMT +4, время: 04:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.