Перейти к содержимому
  • 0
Hikooshi

Ивенты

Вопрос

Никогда с таким не сталкивался и вдруг...
Например, есть основной цикл, в котором обрабатывается поиск кнопки
 

while true do
local _,_,x,y = event.pull("touch")
if ... then
...
end
end

Далее вызывается функция со своим вайлом, который выполняется довольно долго

Как мне сделать так, чтоб во время этого вайла можно было и другие кнопки нажимать? Листенера прикреплять?

 

И сразу второй вопрос: если функции локальны и такая локальная функция прикреплена к листенеру, то как потом отключить такого листенера, если закрывать программу через Ctrl+Alt+C или если программа вылетает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

55 минут назад, Hikooshi сказал:

И сразу второй вопрос: если функции локальны и такая локальная функция прикреплена к листенеру, то как потом отключить такого листенера, если закрывать программу через Ctrl+Alt+C или если программа вылетает?

Ну почему. Можно заглянуть в таблицу event.handlers, там обычно после 4 индекса идут созданные не OpenOS слушатели/таймеры. Но проще перезагрузить конечно.

58 минут назад, Hikooshi сказал:

Как мне сделать так, чтоб во время этого вайла можно было и другие кнопки нажимать? Листенера прикреплять?

По сути, если поиск кнопки долгий - то тут уже ничего не поможет. Разве что, если в коде кнопки есть какой-нибудь os.sleep, то листенер поможет.

 

P.S Сколько кнопок нужно иметь, чтобы кнопка долго искалась?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, BrightYC сказал:

По сути, если поиск кнопки долгий - то тут уже ничего не поможет. Разве что, если в коде кнопки есть какой-нибудь os.sleep, то листенер поможет.

 

P.S Сколько кнопок нужно иметь, чтобы кнопка долго искалась? 

нет, кнопки-то быстро ищутся, их десять или около того, имеется в виду, что на одной из кнопок есть функция с вайлом и вот пока этот вайл выполняется, на кнопке который, нужно другие кнопки нажимать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Hikooshi сказал:

имеется в виду, что на одной из кнопок есть функция с вайлом и вот пока этот вайл выполняется, на кнопке который, нужно другие кнопки нажимать

Да, в этом случае нажатия обрабатываются через listener, а внутрь цикла добавляется os.sleep, потому что события обрабатываются внутри него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...