Statesmanager — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
м
Строка 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) - перевести выбранный объект в заданное состояние.

Дополнительные параметры

+.png изменить состояние объекта - очередь back пуста:

объект ( obj ) - Перевести объект в состояние из следующего поля;
состояние ( st ) - Новое состояние для объекта из предыдущего поля.

+.png изменить состояние объекта - очередь 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 соответственно):
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 (открываем первое окно в очереди на открытие, в нашем случае - первую добавленную задачу) .