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

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

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

Регистрация: Dec 2005
Адрес: Санкт-Петербург
Сообщений: 24
По умолчанию Кеширование данных в XML или поиск по объектам?

Привет.

Делаю многостраничное приложения. Для управления страницами есть менеджер. В менеджере хранится массив со всеми страницами. Страницы могут находиться в разных состояниях, например, Active, Blocked, TransitionIn и т.п.

Когда нужно сменить страницу, менеджер проверяет открыта ли уже страница. В прошлый раз я сделал в менеджере отдельную переменную _activeScreen, в которую клал активную страницу. Это накладывает свои ограничения: потом мне пришлось сделать переменную _waitingScreen, _newScreen и выглядело все это довольно уныло. Теперь я решил проверять непосредственно статусы экранов. И вот вопрос, как лучше сделать.

Возьмем тот же метод getActiveScreen. Вариант 1: пробежаться по всем страницам, и если есть активная, вернуть ее. Вариант 2: хранить в менеджере кэш страниц (я склоняюсь к xml), в атрибутах можно хранить статус и обновлять его, когда надо. Тогда для поиска активной страницы нужно будет просто вынуть элемент с нужным значением атрибута.

Посоветуйте, на каком варианте остановиться?

Старый 06.05.2009, 13:49
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 2  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Очень смутно понял, что Вы написали. Но я для себя придумал довольно простую систему, как управлять страницами:
- каждая страница характеризуется адресом типа "/cat/scat/page1/page";
- все ссылки и кнопки сменяют эти адреса, используя bubbling события;
- контроллер страниц парсит адрес (регулярные выражения) и производит какие-либо действия.

Например, страница "/module1/param1/param2/module2/param1". Контроллер страницы открывает в текущем окне модуль с именем module2 и передает ему param1, а в кнопку "назад" в GUI пишет ссылку "/module1/param1/param2". Если нужны промежуточные экраны, то никто не мешает сделать страницы типа "/module1/waiting", "/module1/loading", которые будут открывать соответствующие модули в нужных состояниях. По окончанию загрузки становится "/module1/active" и т. п.

Я много разных структур перепробовал, но эта оказалась наиболее гибкая, простая и очень удобная с точки зрения открывания новых страниц флэшки из текстовых полей.

Старый 06.05.2009, 14:05
vmakhotkin вне форума Посмотреть профиль Отправить личное сообщение для vmakhotkin Найти все сообщения от vmakhotkin
  № 3  
Ответить с цитированием
vmakhotkin
 
Аватар для vmakhotkin

Регистрация: Dec 2005
Адрес: Санкт-Петербург
Сообщений: 24
s8000_1,

а если нужно перед открытием новой страницы закрыть предыдущую, то что делает контроллер? он хранит ссылку на активную страницу, или еще как-то?

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

Регистрация: Jun 2007
Сообщений: 374
Ну, можно сказать и так.
Есть контейнер, у него есть свойство source. Контроллер меняет это свойство. В сеттере source можно как угодно прописывать смену страниц с любыми анимациями.

Код AS3:
public function set source(value:DisplayObject):void{
  if (this._source == value) return;
  if (this._source) this.removeChild(this._source);
  this._source = value;
  if (this._source) this.addChild(this._source);
}
И переопределяю addChild и removeChild в контейнере, чтобы оно добавляло и убирало объекты с какой-нибудь анимацией.

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

Теги
xml , кэширование , объект
Опции темы
Опции просмотра

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

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


 


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


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