Statesmanager — различия между версиями
Aslav (обсуждение | вклад) м |
Sadovoy (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
=Параметры= | =Параметры= | ||
− | *объект открытия (obj) | + | *'''объект открытия''' (obj) - объект который будет переведён в заданное состояние, если данный объект будет первым в очереди на открытие и передадим менеджеру окон состояние ''next''; |
− | *состояние открытия (st) | + | *'''состояние открытия''' (st) - перевести выбранный объект в заданное состояние; |
− | *объект back (obj_b) | + | *'''объект back''' (obj_b) - объект который будет переведён в заданное состояние, если данный объект будет первым в очереди на закрытие и передадим менеджеру окон состояние ''back''; |
− | *состояние back (st_b) | + | *'''состояние back''' (st_b) - перевести выбранный объект в заданное состояние. |
+ | |||
+ | =Дополнительные параметры= | ||
+ | [[Файл:+.png]] '''изменить состояние объекта - очередь back пуста:''' | ||
+ | :'''объект''' ('' obj '') - Перевести объект в состояние из следующего поля; | ||
+ | :'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - очередь next пуста:''' | ||
+ | :'''объект''' ('' obj '') - Перевести объект в состояние из следующего поля; | ||
+ | :'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | |||
+ | =Параметры которые мы можем считать из statesmanager= | ||
+ | *'''n_back''' - количество событий в очереди на закрытие (не учитывая события добавленные как попапы); | ||
+ | *'''n_next''' - количество событий в очереди на открытие (не учитывая события добавленные как попапы). | ||
+ | |||
=Состояния= | =Состояния= | ||
− | *'''add_first''' - добавить событие в начало очереди | + | *'''add_first''' - добавить событие в начало очереди на открытие; |
− | *'''add_last''' - добавить событие в конец очереди | + | *'''add_last''' - добавить событие в конец очереди на открытие; |
− | *'''next''' - активировать первое событие в очереди | + | *'''add_popup''' - добавить в очередь попапов событие, и сразу его открыть (добавляется в очередь беков на закрытие в начало). Примечание попапы добавляются в свою очередь на закрытие и открытие, параметры объекта statesmanagera (n_back и n_next) не повышаются при добавления попапа. |
− | *'''back''' - активировать back для текущего события в очереди | + | *'''next''' - активировать первое событие в очереди на открытие; |
− | *'''clear''' - очищает стек очереди | + | *'''back''' - активировать back для текущего события в очереди на закрытие; |
+ | *'''clear''' - очищает стек очереди, очищает обе очереди (на открытие и на закрытие, включая попапы). | ||
+ | |||
+ | |||
=Схема работы= | =Схема работы= | ||
Строка 20: | Строка 38: | ||
2) вызывать состояния next или back - объекты у которых вызваны состояния убираются из очереди | 2) вызывать состояния next или back - объекты у которых вызваны состояния убираются из очереди | ||
очередь разбирается с конца | очередь разбирается с конца | ||
+ | |||
+ | =Пример реализации= | ||
+ | ==Очередь из окон== | ||
+ | Задача: У нас открывается окно 1, после его закрытия открывается окно 2,окно 3 и т.д. (после закрытия одного окна открывается другое). | ||
+ | |||
+ | Пример: Закончили уровень, и после закрытия окна с результатами, мы должны показать два окошка с новыми задачами. | ||
+ | |||
+ | |||
+ | '''Реализация:''' | ||
+ | |||
+ | *'''1) Открываем окно с результатами:''' | ||
+ | :Из машины окна, вызываем состояние ''next'' машине обработчику менеджера окон (9win_root). Предварительно записываем состояния для закрытия и открытия данного окна(машины; состояния ''close'' и ''open'' соответственно): | ||
+ | |||
+ | ::[[Файл:Statesmanager W next.png]] | ||
+ | |||
+ | :В машине обработчике менеджера окон (9win_root), в состоянии ''next'' мы задаём менеджеру окон и передаём состояние ''add_first'', а затем ''next''. То есть мы добавляем первым в очередь на открытие наше окно с результатами и эго открываем: | ||
+ | |||
+ | ::[[Файл:Statesmanager Next.png]] | ||
+ | |||
+ | |||
+ | *'''2) Добавляем в очередь окно с задачей:''' | ||
+ | :Из машины окна, вызываем состояние ''add'' машине обработчику менеджера окон (9win_root). Предварительно записываем состояния для закрытия и открытия данного окна(машины; состояния ''close'' и ''open'' соответственно): | ||
+ | |||
+ | ::[[Файл:Statesmanager W add.png]] | ||
+ | |||
+ | :В машине обработчике менеджера окон (9win_root), в состоянии ''add'' мы задаём менеджеру окон и передаём состояние ''add_last''( то есть мы добавляем окно в конец очереди на открытие). | ||
+ | :[[Файл:Statesmanager.Add.png]] | ||
+ | |||
+ | |||
+ | *'''3) Аналогично добавляем другие задачи.''' | ||
+ | |||
+ | |||
+ | *'''4) Для закрытия окна с результатами уровня, мы передаём менеджеру окон состояние ''back'' (закрываем окно, первое в списке на закрытие), а затем состояние ''next'' (открываем первое окно в очереди на открытие, в нашем случае - первую добавленную задачу) '''. | ||
[[Category:Main objects]] | [[Category:Main objects]] |
Версия 11:24, 2 октября 2014
Объект предназначен для постановки объектов в очередь выполнения единообразными командами. Можно применять для управления отображением всплывающих окон.
Содержание
Параметры
- объект открытия (obj) - объект который будет переведён в заданное состояние, если данный объект будет первым в очереди на открытие и передадим менеджеру окон состояние next;
- состояние открытия (st) - перевести выбранный объект в заданное состояние;
- объект back (obj_b) - объект который будет переведён в заданное состояние, если данный объект будет первым в очереди на закрытие и передадим менеджеру окон состояние back;
- состояние back (st_b) - перевести выбранный объект в заданное состояние.
Дополнительные параметры
изменить состояние объекта - очередь back пуста:
- объект ( obj ) - Перевести объект в состояние из следующего поля;
- состояние ( st ) - Новое состояние для объекта из предыдущего поля.
изменить состояние объекта - очередь next пуста:
- объект ( obj ) - Перевести объект в состояние из следующего поля;
- состояние ( st ) - Новое состояние для объекта из предыдущего поля.
Параметры которые мы можем считать из statesmanager
- n_back - количество событий в очереди на закрытие (не учитывая события добавленные как попапы);
- n_next - количество событий в очереди на открытие (не учитывая события добавленные как попапы).
Состояния
- add_first - добавить событие в начало очереди на открытие;
- add_last - добавить событие в конец очереди на открытие;
- add_popup - добавить в очередь попапов событие, и сразу его открыть (добавляется в очередь беков на закрытие в начало). Примечание попапы добавляются в свою очередь на закрытие и открытие, параметры объекта statesmanagera (n_back и n_next) не повышаются при добавления попапа.
- next - активировать первое событие в очереди на открытие;
- back - активировать back для текущего события в очереди на закрытие;
- clear - очищает стек очереди, очищает обе очереди (на открытие и на закрытие, включая попапы).
Схема работы
1) Добавить объекты по одному в очередь
2) вызывать состояния next или back - объекты у которых вызваны состояния убираются из очереди очередь разбирается с конца
Пример реализации
Очередь из окон
Задача: У нас открывается окно 1, после его закрытия открывается окно 2,окно 3 и т.д. (после закрытия одного окна открывается другое).
Пример: Закончили уровень, и после закрытия окна с результатами, мы должны показать два окошка с новыми задачами.
Реализация:
- 1) Открываем окно с результатами:
- Из машины окна, вызываем состояние next машине обработчику менеджера окон (9win_root). Предварительно записываем состояния для закрытия и открытия данного окна(машины; состояния close и open соответственно):
- В машине обработчике менеджера окон (9win_root), в состоянии next мы задаём менеджеру окон и передаём состояние add_first, а затем next. То есть мы добавляем первым в очередь на открытие наше окно с результатами и эго открываем:
- 2) Добавляем в очередь окно с задачей:
- Из машины окна, вызываем состояние add машине обработчику менеджера окон (9win_root). Предварительно записываем состояния для закрытия и открытия данного окна(машины; состояния close и open соответственно):
- В машине обработчике менеджера окон (9win_root), в состоянии add мы задаём менеджеру окон и передаём состояние add_last( то есть мы добавляем окно в конец очереди на открытие).
- 3) Аналогично добавляем другие задачи.
- 4) Для закрытия окна с результатами уровня, мы передаём менеджеру окон состояние back (закрываем окно, первое в списке на закрытие), а затем состояние next (открываем первое окно в очереди на открытие, в нашем случае - первую добавленную задачу) .