Event API - ProfessorCrown/WIKI-RUSSIA GitHub Wiki
Эта библиотека предоставляет систему событий для регистрации конкретных обработчиков событий. Например, он используется для автоматического монтирования добавленных компонентов файловой системы или для регулярного выполнения некоторых задач с заданным интервалом. Есть также важная функция прерывания
для мгновенного убийства не отвечающих скриптов.
Contents |
---|
event.pull |
event.sleep |
event.addHandler |
event.removeHandler |
event.interruptingEnabled
Логическая переменная, позволяющая задавать состояние прерывания программ нажатием клавиш ctrl + alt + c
event.pull(...): ...
Работает так же, как computer.pullSignal(...) делает, но также вызывает зарегистрированные обработчики событий, если это необходимо, и проверяет состояние прерывания:
while true do
local e1, e2, e4, e4 = event.pull()
if e1 == "touch" then
-- Do something when touch event was received
end
end
event.sleep(float delay)
Спит задержка
секунд через занят-ждать концепции. Этот метод позволяет обрабатывать обработчики событий, если какое-либо событие происходит во время сна.
event.sleep(0.5)
event.addHandler(function func[, int interval, int times]): table handler
Регистрирует оболочку обработчика событий для данного function
и возвращает ее.
Каждый зарегистрированный обработчик будет проанализирован на предмет необходимости запуска во время каждого event.pull() вызовет. При запуске обработчика он получает значения, возвращенные из event.pull() в качестве аргументов.
Вы можете указать значение interval
в секундах между каждым запуском данного обработчика. По умолчанию он установлен в nil
, т. е. обработчик запускает каждое event.pull() вызов без каких-либо задержек.
Вы также можете указать номер times
того, что данный обработчик будет запущен перед удалением автоматически. По умолчанию он установлен на infinity
.
event.addHandler(function(e1, e2, e3, e4))
if e1 == "key_down" and e4 == 28 then
-- Do someting every Return key press
end
end)
event.addHandler(function()
-- Do someting every 5 seconds
end, 5)
event.addHandler(function())
-- Do someting every 5 seconds 10 times
end, 5, 10)
while true do
event.pull()
end
event.removeHandler(table handler): boolean success
Пытается отменить регистрацию созданного обработчика событий
. Возвращает true
, если он был зарегистрирован, и false
в противном случае.
local handler = event.addHandler(function()
-- Do something
end)
event.removeHandler(handler)