Навигация по экранам — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
м
м
Строка 21: Строка 21:
 
== Навигация кнопками и машинами ==
 
== Навигация кнопками и машинами ==
 
Иногда возникают ситуации, когда требуется использование и кнопок и машин. Использование кнопок и машин очень простое. Вся логика заключается в том, что кнопка будет вызывать состояние машины, где она переходит на экран, либо где она выбирает на какой экран нужно перейти, а потом переходит. В этом случае, кнопке не нужно указывать в поле '''перейти на''' какой-то экран, это поле должно оставаться пустым. Чтобы вызвать состояние машины, нужно добавить свойство кнопки ([http://ge.absolutist.com/index.php/Button см. Кнопка] ).
 
Иногда возникают ситуации, когда требуется использование и кнопок и машин. Использование кнопок и машин очень простое. Вся логика заключается в том, что кнопка будет вызывать состояние машины, где она переходит на экран, либо где она выбирает на какой экран нужно перейти, а потом переходит. В этом случае, кнопке не нужно указывать в поле '''перейти на''' какой-то экран, это поле должно оставаться пустым. Чтобы вызвать состояние машины, нужно добавить свойство кнопки ([http://ge.absolutist.com/index.php/Button см. Кнопка] ).
 +
<br>
 +
<br>
 +
== Пример проекта ==
 +
На рисунке ниже показана схема переходов между экранами. Проект состоит из:
 +
<br>
 +
* главное меню - 1 экран
 +
* игровые экраны - 6 экранов
 +
* служебный экран с опциями - 1 экран
 +
* more games (глобальный экран) - 1 экран
 +
На главном меню находится таблица в которой можно выбрать экран на который хотим перейти. В таблице находится 6 экранов на выбор. На каждом игровом экране находится по три кнопки (кроме 1-го и последнего экрана, на них 2 кнопки): кнопка перехода на следующий экран (реализована объектом "машина состояний"), кнопка перехода на предыдущий экран (реализована объектом "кнопка"), кнопка перехода в главное меню (реализована объектом "кнопка").
 +
<br>
 +
Кроме этого, на каждом экране находится машина состояний '''save_cur_screen''', которая при заходе на экран сохраняет в опции параметр, который определяет этот экран, как последний посещенный. Сохранение идет двумя способами:
 +
<br>
 +
* Считывается параметр '''curScrID''' и полученное значение сохраняется в параметр '''current.screen_auto''';
 +
* В параметр '''current.screen_man''' сохраняется условно присвоенный номер экрана (если screen_01, то присваиваем 1, если screen_02, то 2-ку и т.д.)

Версия 13:48, 13 марта 2013

Навигация по экранам является важным элементом при разработке приложения. Благодаря ей происходит смена экранов, сюжетных линий и т.д. В appsalute creator можно выделить несколько основных способов навигации:

  • навигация кнопками
  • навигация машинами
  • навигация кнопками и машинами

Навигация кнопками

Если открыть свойства объекта кнопка и внимательно изучить их, то можно заметить такое поле, как перейти на, в этом поле в выпадающем списке нужно выбрать какой-то экран. Тогда, при нажатии на эту кнопку приложение будет переходить на выбранный экран.

!!!ЗАМЕЧАНИЕ: В свойствах объекта кнопка также есть поле не предзагружать, которое по умолчанию равно 0. Это означает, что вся графика экрана, на который переходит эта кнопка будет предзагружаться в текущем экране. С одной стороны это хорошо, так как переход на экран займет меньше времени, чем если бы графика не предзагружалась. Но с другой стороны, у приложения может не хватить памяти и оно будет вылетать. Поэтому, РЕКОМЕНДУЕТСЯ поле не предзагружать ставить в значение 1.

Навигация машинами

Машина состояний находит широкое применение и в навигации по экранам. Для навигации по экранам в машине состояний есть следующие свойства:

  • init -> вернуться назад (back) если установлено в 1, то перейдет на предпоследний просмотренный экран или на экран, id которого записан в параметре prevScrID;
  • set -> экран для перехода (scr) в выпадающем списке выбирается экран, на который перейдет приложение.



Навигация кнопками и машинами

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

Пример проекта

На рисунке ниже показана схема переходов между экранами. Проект состоит из:

  • главное меню - 1 экран
  • игровые экраны - 6 экранов
  • служебный экран с опциями - 1 экран
  • more games (глобальный экран) - 1 экран

На главном меню находится таблица в которой можно выбрать экран на который хотим перейти. В таблице находится 6 экранов на выбор. На каждом игровом экране находится по три кнопки (кроме 1-го и последнего экрана, на них 2 кнопки): кнопка перехода на следующий экран (реализована объектом "машина состояний"), кнопка перехода на предыдущий экран (реализована объектом "кнопка"), кнопка перехода в главное меню (реализована объектом "кнопка").
Кроме этого, на каждом экране находится машина состояний save_cur_screen, которая при заходе на экран сохраняет в опции параметр, который определяет этот экран, как последний посещенный. Сохранение идет двумя способами:

  • Считывается параметр curScrID и полученное значение сохраняется в параметр current.screen_auto;
  • В параметр current.screen_man сохраняется условно присвоенный номер экрана (если screen_01, то присваиваем 1, если screen_02, то 2-ку и т.д.)