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)