RU/triggerEvent

From Multi Theft Auto: Wiki

Эта функция вызовет срабатывание указанного события для указанного элемента в дереве элементов. Подробнее о работе системы событий см. event system.

Не следует вызывать срабатывание событий для корня (root element), если это не является необходимым, поскольку это приводит к срабатыванию события для всех элементов, что может сильно нагрузить CPU. Нужно стараться использовать как можно более конкретный элемент (т.е. ниже по дереву элементов).

Также можно использовать значение, возвращаемое этой функцией, чтобы определить, было ли событие отменено одним из обработчиков. Реакция вашего скрипта на отмену события (если она предполагается) должна соответствовать назначению события. В общем случае, отмена события должна приводить к прекращению выполнения того кода, который зависит от вызывавшего событие. Например, если у вас есть событие на захват флага onFlagCapture, то предполагается, что его отмена должна делать невозможным захват флага. Аналогично, если вы вызываете при убийстве игрока событие onPlayerKill, то ожидаемая реакция при его отмене - либо невозможность убить игрока, либо, например, невозможность получить за это очки.

Синтаксис

bool triggerEvent ( string eventName, element baseElement, [ var argument1, ... ] )    

Обязательные аргументы

  • eventName: Название вызываемого события.
  • baseElement: Элемент, для которого будет вызвано событие. Подробнее о работе системы событий см. event system.

Дополнительные аргументы

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

  • argument1: Первый аргумент, который получит обработчик после значения переменной baseElement.
    • Примечание: Обработчику можно передавать более одного аргумента, список аргументов разделяют запятыми.

Вывод

  • Возвращает nil, если событие не найдено, либо переданы некорректные аргументы.
  • Возвращает true если событие сработало успешно, и не было отменено с помощью cancelEvent.
  • Возвращает false если событие сработало успешно, но было отменено с помощью cancelEvent.

Пример

Если вы создадите следующее событие:

-- Получение корня
rootElement = getRootElement ()

-- Создаем новое событие
addEvent ( "onSpecialEvent", true )
-- Описываем функцию обработки
function specialEventHandler ( text )
	outputChatBox ( text )
end
-- Добавляем обработчик
addEventHandler ( "onSpecialEvent", rootElement, specialEventHandler )

Затем можно вызвать срабатывание этого события:

triggerEvent ( "onSpecialEvent", rootElement, "test" )

В результате в чат будет отправлено сообщение "test".

Смотрите также