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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Feb 2011
Сообщений: 431
По умолчанию Распределение всех объектов на сцене по "слоям"

Доброго времени суток.
Столкнулся с проблемой распределения всех объектов на сцене по "слоям", где слой - чисто абстрактное понятие.
Всё пока будет предельно похоже на слои во флэш IDE.
Я не знаю с какой стороны подойти к этой проблеме. Как варианты :

1) Каждый слой будет содержать диапазон значений index'ов элементов на сцене ( getChildIndex()). Если мы добавляем к какому-то слою (L) элемент , мы меняем его z-index таким образом чтобы ни один объект из слоёв уровнем ниже слоя L не был над этим элементом - это если добавленный объект находился ниже объектов слоя L, а если выше - понижаем его индекс так чтобы у него был самый высокий индекс среди объектов в слое L.
Тут возникают большие проблемы в случае удаления элементов - флэш (хорошо это или плохо) не оставляет пустых индексов, т.е. при удалении объекта, если есть другие объекты индексом выше него, они смещаются так чтобы заполнить освободившийся индекс. Т.е. придётся учитывать все возможные смещения и вычислять по новой диапазон индексов для каждого слоя, хоят в принципе это не особо сложно.

2) Просто задать каждому слою по контейнеру (спрайту) и распределять объекты по этим контейнерам. Этот метод проще. Правда в этом случае у меня возникнут некоторые проблемы с выбором объектов с разных слоёв и работой с ними, придётся переписать немного кода.

Я сделал редактирование отдельной группы объектов, в каждой группе будет своё распределение по слоям, и в группах вложенных в этих группах итд итп.
Если брать второй способ, это означает что придётся для каждой группы держать набор таких вот спрайтов.
А если брать первый способ, просто будут массивы с данными о том какой элемент принадлежит какому слою внутри группы. Сама группа (которая кстати тоже чисто абстрактное понятие) тоже будет принадлежать слою, и к ней также будет привязываться диапазон индексов. Вот тут я ещё не додумал как следует.

Опять же, если брать второй способ, то когда я буду редактировать отдельную группу, мне придётся все элементы заново раскидывать по спрайтам, когда я закончу её редактировать, придётся обратно их перекладывать.

Второй способ конечно геморный и возможно как-то повлияет на производительность, но первый это вообще разрыв мозга.
Я понимаю что на решение будет сильно влиять уже имеющаяся структура проекта, но, чисто гипотетически, как бы вы поступили на моём месте ?
Или может есть уже что-то похожее и я изобретаю велосипед с квадратными колёсами ?

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

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

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


 


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


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