zombiebox
Version:
ZombieBox is a JavaScript framework for development of Smart TV and STB applications
53 lines (40 loc) • 3.68 kB
Markdown
Layer management
===
Управлением слоями занимается менеджер слоев (layer manager).
Регистрирует слои, которые соответствующим образом обрабатываются. Так,
например, при инициализации в нем регистрируются сцены, с помощью
метода *addScene.*
Глобальный объект приложения предоставляет следующие методы, которые
делегируют действия к менеджеру слоев:
- _**addScene**_ - регистрирует сцену по указанному имени;
- _**show**_ - открывает зарегистрированную сцену по указанному имени,
также принимает на вход объект данных, с которым будет вызван метод
*preload*;
- _**home**_ – открывает домашнюю сцену.
Включение слоя в DOM осуществляется при регистрации сцены или вручную, с
помощью метода *app.showChildLayer* или *app.showChildLayerInstance,*
принимающие конструктор или инстанс слоя соответственно.
В процессе обработки менеджером слоев (layer manager) выполняются
методы, дополнением которых можно проконтролировать процесс обработки
слоя:
- _**preload**_ - принимает объект данных и возвращает promise.
Вызывается перед показом слоя. Показ сцены осуществится только когда
promise разрешится. Используется, когда слою требуются внешние
данные, нередко подгружаемые асинхронным запросом.
<!-- -->
- _**update**_ (надо проверить) - принимает снэпшот (snapshot) и
объект данных из истории переходов, возвращает promise. Вызывается
при перемещении назад по истории переходов. Показ сцены осуществится
только когда promise разрешится. Используется, когда нужно обновить
данные, хранящиеся в истории переходов.
- _**beforeDOMShow**_ - принимает снэпшот и объект данных. Вызывается
после preload, но перед тем, как показать слой.
Вызывает *beforeDOMShow* для всех своих виджетов;
- _**afterDOMShow**_ - принимает снэпшот и объект данных. Вызывается
после показа слоя. Вызывает *afterDOMShow* для всех своих виджетов.
При наличии снэпшота загружает его, в противном случае активирует
виджет по умолчанию (если такой установлен);
- _**beforeDOMHide**_ - вызывается перед скрытием слоя.
Вызывает *beforeDOMHide *для всех своих виджетов;
- _**afterDOMHide**_ - вызывается после скрытия слоя. Вызывает
*afterDOMHide *для всех своих виджетов;