Как показать всплывающие окна в Corona SDK?

Я пытаюсь показать всплывающее окно в событии нажатия кнопки, используя storyboard.showOverlay(), который представляет собой просто сцену поверх другой сцены. Есть ли какая-нибудь функция, с помощью которой я могу показать правильное всплывающее окно?


person Akshada-Systematix    schedule 09.01.2014    source источник


Ответы (3)


Также вы можете использовать раскадровку для достижения этого http://docs.coronalabs.com/api/library/storyboard/hideOverlay.html

person Rais Iqbal    schedule 10.01.2014
comment
Спасибо за предложение. Для этой цели я использую раскадровку.showOverlay и раскадровку.hideOverlay. У меня проблема со сменой сцены при наложении. У меня есть кнопка паузы, которая перекрывает 3 кнопки при касании: «Назад в меню», «Возобновить» и «Перезагрузить» соответственно. В событии кнопки «Назад в меню» я использую раскадровку.hideOverlay и раскадровку.gotoScene, которые должны иметь возможность перенаправить меня в класс меню. Но он не работает и выдает ошибку. Есть ли способ решить эту ошибку? - person Akshada-Systematix; 10.01.2014
comment
Вы можете добавить по одному всплывающему окну за раз, как только оно будет скрыто с экрана, затем можно будет добавить другое, пожалуйста, проверьте причину проблемы. - person Rais Iqbal; 10.01.2014

Да,

МЫ можем отобразить всплывающий экран с помощью storyboard.showOverlay(). Шаг 1: вот код блока для него. Если мы установим «isModal = true», это ограничит выполнение пользователем любых действий в заднем окне.

local options =
{
    effect = "fade",
    time = 100,
    params =
        {
            sample_var = "anything parameter to send",
            theme = "another parameter to send",
            data = "another parameter to send"
        },
    isModal = true
}

storyboard.showOverlay( "pause", options )

Шаг 2. Чтобы снова скрыть наложение:

     local options ={
    effect = "fade",
    time = 100,
    isModal = false,
}storyboard.hideOverlay( "pause", options )

МЫ также можем реализовать делегированные методы наложения:

-- после размещения оверлея отправляется следующее событие

    function scene:overlayBegan( event )

   -- print( "Showing overlay: " .. event.sceneName )
end
scene:addEventListener( "overlayBegan" )

-- после удаления оверлея отправляется следующее событие

    function scene:overlayEnded( event )

   -- print( "Overlay removed: " .. event.sceneName )
end
scene:addEventListener( "overlayEnded" )
person anshul-systematix    schedule 09.01.2014
comment
Спасибо за ваш ответ. Но я не хочу использовать оверлеи для этой цели. Как оверлеи вызывает класс. Я просто хочу знать, есть ли какой-либо метод, который показывает всплывающие окна. Например, чтобы показать кнопки, мы импортируем класс виджета и показываем кнопки. Так же, как если бы был какой-либо класс или метод, кроме оверлеев? - person Akshada-Systematix; 10.01.2014

Есть много разных способов сделать всплывающее окно: native.newTextBox, native.showAlert, ваша собственная группа отображения с графикой, отображение текста, сцена раскадровки, если вы используете раскадровку в качестве наложения. Есть множество способов сделать это.

Но реальный вопрос, который у вас, вероятно, возникает, заключается в том, как сделать так, чтобы он отображался только один раз. Я делаю это следующим образом: у меня есть файл настроек, в котором я сохраняю такие вещи, как musicOn, soundOn и т. д. При запуске я читаю этот файл. Если он не существует, я создаю его с моими первоначальными настройками. Но это также говорит мне, что если у меня нет этого файла, это мой первый запуск приложения, и я могу отобразить свой начальный экран справки по своему выбору.

person Rais Iqbal    schedule 10.01.2014