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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.11.2011, 13:54
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию глубоко в контейнер шлем мы данных...

Разрабатываю интересное приложение, интересное тем, что много новых архитектурных решений и т.д.
Суть то простая - пришли данные - отобразил их, но из за мелких ньюансов построения этой визуализации проект становится не таким простым.
Вот например одна из моих головоломок :

1. Есть контейнер ( назовем его событием )
2. Внутри еще контейнерЫ ( назовем их блоками события )
3. Внутри каждого блока еще контейнеры ( назовем их группами )
4. Ну а в каждой группе еще N кол-во контейнеров = профит.

Данные приходят сразу ДЛЯ всего события, тоесть всего лишь 1 некий метод должен раскидать данные по всем контейнерам, обрисовать их как надо и т.д.
И так, что делаем мы : каждый контейнер имеет свой инфо класс ( с переменными нужными для визуализирования контейнера ) Каждый инфо класс события имеет вектор нифо класса блоков события, далее групп и т.д. до конца. Каждый контейнер имеет ссылку на нужный инфо класс, а так же вектор вложенных в него контейнеров, т.е. для события - вектор блоков и т.д.

Собственно хотелось бы спросить, съедобна ли такая реализация ( под этим словом подразумевается имеет ли право так писать бывалый программер, или нет ) .
Вопрос стоит про доступ до определенного контейнера - далее для перезаписи данных.
Вот простой пример как я пытаюсь сменить значение в исходе* ( самый глубокий контейнер )

Код AS3:
private function changeLockerOnIssue(eventID:String , blockID:String , groupID:String , issueID:String, lock:int):void {
 
			var eventContainer:EventContainer = Sorter.getEventByID ( eventID , _eVector );
			var blockContainer:BlockContainer = null;
			var groupContainer:GroupContainer = null;
			var coloredBox:ColoredBox = null;
 
			if (eventContainer != null) blockContainer = Sorter.getBlockByID ( blockID , eventContainer._vBlock );
			if (blockContainer != null) groupContainer = Sorter.getGroupByID ( groupID , blockContainer._vGroup );
			if (groupContainer != null) coloredBox = Sorter.getIssueByID ( issueID , groupContainer ); 
			if (coloredBox != null) {	
 
				lock == 1 ? coloredBox.setLock() : coloredBox.setUnlock(groupContainer.color);
				trace ('# change lock issue : ' + lock + ',' + blockContainer.info.blockEventID);
			}
		}
///
Кусочек сортера
 
public static function getEventByID(id:String , container:Vector.<EventContainer>):EventContainer {
 
			for (var i:String in container) if (container[i].info.eventID == id) return container[i];
 
			return null;
		}
Оценить версию написанную предидущим программмистом для более понятного слога https://www.abc-bet.ru/csp/shanscsp/PPS/live/index.html
__________________
Марк Tween


Последний раз редактировалось in4core; 13.11.2011 в 13:58.
Старый 13.11.2011, 14:20
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 2  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Очень запутанно описано. Может шаблон Компоновщик?
__________________
Я просто добрый шутник.

Старый 13.11.2011, 18:59
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 3  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
По ссылке "https://www.abc-bet.ru/csp/shanscsp/PPS/live/index.html" чето не понятное какието цифры. Зачем там все контейнеры или к чему ссылка тогда?

Старый 13.11.2011, 22:45
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Ну это типа букмейкерская контора)
__________________
Марк Tween

Старый 13.11.2011, 23:02
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 5  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от in4core Посмотреть сообщение
Разрабатываю интересное приложение, интересное тем, что много новых архитектурных решений и т.д.
Все уже придумано до нас. Как уже писали, вы придумали компоновщик. Но код приведенный вами не понял к чему.

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

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

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


 


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


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