![]() |
Реализация интерфейса закладок в редакторе уровней
Реализую интерфейс в редакторе уровней, есть поле с закладками.
Сделал так, есть базовый класс закладок и каждая новая закладка – это один класс унаследованный от базового и принимающий спрайт (с помощью композиции) для отображения содержимого вкладки. Все вроде ок, заполняем каждую вкладку спрайтом с контентом, там расшариваем вложенные клипы, поля, счетчики и работаем с ними. Но получилось так, что есть ряд игровых объектов, которые надо расположить на уровне перетаскиванием и они разделены по разделам, напр. “динамические”, “статичные”, “люди”, “бэкграунды” и пр. и каждый такой раздел с объектами отображается в отдельной вкладке, но инструментом для отображения я использую единственный экземпляр компонента TileList с ячейками, просто при переходе в каждый раздел я очищаю и заполняю ячейки новыми объектами из соотв. раздела. Но есть проблема, чтобы один единственный экземпляр объекта TileList, находился во всех закладках, я его добавил в базовый класс, как статичный. Код AS3:
Код AS3:
|
А почему такая неуверенность в создании TileList? Разве нельзя его создать до создания табов и передавать в конструктор на него ссылку.
|
Если посылать TileList в конструктор, этот как вариант, но в таком случае придется и создавать и добавлять в список контейнера вне кода таба, хотелось бы все манипуляции проводить внутри, чтобы вне табов не было лишнего кода. Вероятно так и придется поступить, но может есть еще варианты?
|
Ну а как еще, если есть неуверенность в его наличии проверять в табе? Повторять только код. Или дернуть у вышестоящего класса метод, который вернёт все что надо. Опять же проверка в каждом табе на наличие ненуллового тайллиста будет выполняться. Если он создается один раз - создать его заранее и делать что душе угодно.
|
Тут еще ситуация осложняется тем, что к TileList добавляется событие клика по ячейки, которое тоже приходится проверять внутри таба на наличие, чтобы дубляжа вызова функции onClickCell не было.
Код AS3:
|
| Часовой пояс GMT +4, время: 13:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.