|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Что лучше использовать, контейнеры или массивы.
Давно хотел выяснить для себя что целесообразнее использовать для организации структуры объектов проекта: массивы или контейнеры.
Массивы в данном качестве использую давно, что нельзя сказать о контейнерах. Оговорюсь сразу что понимаю выгоду использования контейнера, например тогда, когда в проекте подразумевается использование слоёв. Слышал, в том числе и на форуме, негативные отзывы о массивах, в частности о сложности управления объектами при помощи их, в особенности если эти массивы многомерные. В качестве аргумента в пользу массивов выкладываю упражнение по построению, регулированию и удалению замкнутых контуров отрисованных кривыми Безье второго порядка. В данном упражнении используется трёхмерный массив объектов. На рабочем поле можно создать несколько замкнутых контуров - это элементы массива первого порядка. В каждом замкнутом контуре есть наборы объектов, состав одного набора: кривая(спрайт), точка регулирования кривой(спрайт), точка соединения кривых(спрайт) - вместе они массив второго порядка, а каждый в отдельности - элемент третьего порядка. Данное упражнение имеет два рабочих режима, регулируемых кнопкой: 1.Режим построения контура(жёлтый цвет), 2.Режим регулирования контура(зелёный цвет). Из режима построения контуров нельзя выйти не закончив какой-либо контур. В режиме регулирования контуров можно изменять форму сегментов сплайна, добавлять опорные точки(красный цвет) и удалять их, а также удалять выбранные контуры. Режим регулирования контура (зелёный цвет кнопки): 1.Добавить опорную точку - подвести курсор к линии и после того как он примет форму указателя ссылки - кликнуть по линии. 2.Удалить опорную точку или контур - выбрать красную точку кликнув по ней левой кнопкой мыши, после клика кликнуть правой кнопкой мыши и в контекстном меню выбрать требуемую операцию. Данное упражнение можно отнести как плюс в применении массивов |
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Зависит от ситуации.
Я тоже пишу реализацию слоёв, но пользуюсь массивами, т.к. у меня ещё есть группировка объектов, и в каждой группе есть свой набор слоев, а есть ещё подгруппы... Мне показалось легче работать с z-index'ом элементов чем создавать новые контейнеры для каждого слоя и работать с ними. Но работая с массивами логика приложения становится сложнее, надо всё обдумать и выбрать подходящий вариант. |
|
|||||
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Можно ведь заносить объекты и в массивы и в контейнеры. Если необходимо отключить активность слоя - это к контейнеру, а если удалить объекты - то сначала найти их в массиве, потом в контейнере, удалить из контейнера и подкорректировать массив?
|
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Цитата:
|
|
|||||
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Я немного обобщил, сказав выше что в массиве второго уровня только объекты, там не только объекты(спрайты) а ещё кое-какие дежурные данные (строки, числа), т.о. в массиве второго порядка элементов больше 3.
|
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Не надо пихать всё подряд в массив.
Если мы говорим о реализации слоёв, то в случае реализации через массивы, в массиве должны быть только DisplayObject'ы. Если вам надо как-то привязать ко всему этому строки/числа, привяжите их либо к самим ДО, либо создайте отдельный массив для этого. Но опять же, у меня специфическая задача, те же слои, я думаю, в большинстве случаев будет легче реализовать через контейнер. |
|
|||||
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Если есть у кого-нибудь ссылка на толковые материалы об использовании многомерных контейнеров, сортировка, обращение к вложенным контейнерам и т.д. и т.п. - поделитесь плиз.
|
Часовой пояс GMT +4, время: 09:44. |
|
« Предыдущая тема | Следующая тема » |
|
|