Навигация по экранам — различия между версиями
Jabchik (обсуждение | вклад) м |
Jabchik (обсуждение | вклад) м |
||
Строка 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-ку и т.д.)