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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Aug 2009
Сообщений: 134
По умолчанию Реализация интерфейса закладок в редакторе уровней

Реализую интерфейс в редакторе уровней, есть поле с закладками.
Сделал так, есть базовый класс закладок и каждая новая закладка – это один класс унаследованный от базового и принимающий спрайт (с помощью композиции) для отображения содержимого вкладки.
Все вроде ок, заполняем каждую вкладку спрайтом с контентом, там расшариваем вложенные клипы, поля, счетчики и работаем с ними.
Но получилось так, что есть ряд игровых объектов, которые надо расположить на уровне перетаскиванием и они разделены по разделам, напр. “динамические”, “статичные”, “люди”, “бэкграунды” и пр. и каждый такой раздел с объектами отображается в отдельной вкладке, но инструментом для отображения я использую единственный экземпляр компонента TileList с ячейками, просто при переходе в каждый раздел я очищаю и заполняю ячейки новыми объектами из соотв. раздела.
Но есть проблема, чтобы один единственный экземпляр объекта TileList, находился во всех закладках, я его добавил в базовый класс, как статичный.

Код AS3:
public class BaseTab
{
        // ссылка на единственный экземпляр во всех наследуемых классах
        static var tileList: TileList; 
	public static var curPart:int;
	public var visual:DisplayObjectContainer;
 
	public function BaseTab( part:int, icon:DisplayObjectContainer, container:DisplayObjectContainer,  regObj:RegisterObjects, visual:DisplayObjectContainer = null  )              
	{
		//…
	}
 
		//…
	}
При создании очередной закладки, мне приходится проверять, был ли создан единственный TileList и был ли добавлен в список отображения, если нет, то создать/добавить напр.:

Код AS3:
public class TileItemTab extends BaseTab
{
    public function TileListTab( part:int, icon:DisplayObjectContainer, container:DisplayObjectContainer,
	                                     regObj:RegisterObjects)
    {
	    super( part, icon, container, regObj, null );
 
            //проверка экземпляра TileList на создание и добавление 
            //в список отображения в наследуемом классе закладки
	    if (!tileList)
	    {
		tileList  = new tileList ();
		//tileList.update(EnumPart.DYNAMIC);
		container.addChild(tileList);
		tileList.x = Utils.center(container.width, tileList.width);
		tileList.y = 90;
	    }
 
	    //….
    }
}
Вся эта ситуация со статическим экземпялром TileList и проверками в каждом наследуемом классе на создание/добавление в список отображения мне не нравится, организовано плохо, посоветуйте варианты, как можно более правильно реализовать, чтобы с одним единственным объектом TileList можно было работать в наследуемых классах закладок.

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

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

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


 


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


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