Как правильно менять сцены? - PullRequest
1 голос
/ 26 ноября 2011

Когда я делал LUA, я запускал dofile("..."); для загрузки других файлов lua и тому подобного.Позже я узнаю, что это очень плохая практика и может привести к перерывам в работе приложений.

Теперь, когда я нахожусь на пути к разработке приложения WebO, я хочу убедиться, что я правильно меняю сцену, прежде чем выбратьплохая привычка программирования.

На данный момент я использую:

label2Tap: function(inSender, event) {
    Mojo.Controller.stageController.popScene();
    Mojo.Controller.stageController.swapScene("LogicAndArithmetic");
},

Что прекрасно подходит для того, чтобы попасть на мою сцену LogicAndArithmetic, это лучший способ сделать это?Благодарю.

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Хотя это технически правильно, скорее всего, пользователь не будет ожидать, что ваше приложение будет себя вести.В общем, когда пользователь нажимает кнопку, которая открывает новую сцену, она помещается в стек, как сказал Мигель.Пользователь будет ожидать, что сможет вернуться и вытолкнуть сцену из стека.Это происходит автоматически, вам не нужно слушать этот вход.Вы делаете это, вызывая Mojo.Controller.pushScene ("sceneName") ;.Хотя есть некоторые приложения, в которых swapScene имеет смысл, ваше приложение, вероятно, может быть концептуализировано как стек сцен с логической «задней» сценой.

Я бы рекомендовал поиграть с некоторыми существующими приложениями, чтобы почувствоватькак они себя ведутКроме того, хотя Мигель предложил перейти на Enyo, стоит отметить, что приложения Enyo официально не должны работать на устройствах (телефонах) webOS 2, только на сенсорной панели.Их можно запускать на устройствах webOS 2, но я верю, что они будут отклонены из каталога приложений.

2 голосов
/ 26 ноября 2011

Модель сцены в среде Mojo webOS работает как стек.Когда приложение запускается, вы звоните pushScene, чтобы отобразить вашу главную сцену.Обычно вы затем делаете дополнительные pushScene вызовы, чтобы добавить сцены в стек сверху, а затем, когда вы закончите с ними, они выталкиваются, как правило, когда пользователь выполняет «обратный жест», возвращая предыдущую сцену.В конце концов вы вернетесь на свою главную сцену.

Вызов swapScene эквивалентен вызову popScene, а затем pushScene для другой сцены.В вашем случае вы вызываете popScene, а затем swapScene, так что это эквивалентно выталкиванию двух сцен из стека и затем отодвиганию одной сцены назад.Возможно, это работает, потому что у вас есть только одна сцена, но если бы у вас было больше, это не сработало бы правильно.

Кстати, почему вы работаете с Mojo, а не с Enyo?

...