addlistener

Класс: указатель

Создайте прослушиватель событий, привязанный к источнику событий

Синтаксис

el = addlistener(hSource,EventName,callback)
el = addlistener(hSource,PropertyName,EventName,callback)
addlistener(___)

Описание

el = addlistener(hSource,EventName,callback) создаёт прослушиватель для события EventName при срабатывании на исходном объекте hSource.

Если hSource является массивом, прослушиватель отвечает на именованное событие для любого объекта в hSource массив. callback - указатель на функцию, ссылающийся на функцию обратного вызова.

el = addlistener(hSource,PropertyName,EventName,callback) создает прослушиватель для одного из предопределенных событий свойства. Существует четыре предопределенных события свойств:

addlistener(___) создает объект прослушивателя без указателя. Можно использовать этот синтаксис с любым из предыдущих входных синтаксисов.

Имя событияСобытие происходит
PreSet

Непосредственно перед установкой значения свойства, перед вызовом его метода доступа к набору

PostSet

Сразу после установки значения свойства

PreGet

Непосредственно перед обслуживанием запроса значения свойства, перед вызовом его метода get access

PostGet

Сразу после возврата значения свойства в запрос

Входные параметры

расширить все

Источник события - это объект, являющийся источником события, или массив исходных объектов, заданный как массив указателей.

Имя события, которое запускается на исходных объектах, заданное как регистровый, цитируемый текст. Для событий свойства имя события является одним из четырех предопределенных событий свойства.

Типы данных: char | string

Имя свойства, свойство которого запускает прослушиватель, заданное как одно из следующих значений:

  • Вектор символов или массив ячеек из векторов символов, где каждый вектор символов является именем свойства, заданного для объектов в hSource

  • Скалярное meta.property объект

  • Массив meta.property объекты

Присоединить прослушиватели к событиям свойств динамических свойств можно только при hSource скаляром. Если hSource не нескаляром, тогда свойства должны принадлежать классу hSource и не могут включать динамические свойства (которые не являются частью определения класса).

Класс, определяющий свойство source, должен задать GetObservable и SetObservable атрибуты свойств, которые позволяют вам прослушивать события свойств.

Коллбэк прослушивателя, заданный как указатель на функцию

Типы данных: function_handle

Выходные аргументы

расширить все

Объект прослушивателя, созданный addlistener, заданный как указатель на listener или event.proplistener объект.

Примеры

расширить все

Создайте прослушиватель свойств для Color свойство графического объекта figure окно.

fig = figure;
propListener = addlistener(fig,'Color','PostSet',@(src,evnt)disp('Color changed'));

Установите значение Color свойство к yellow. Установка свойства запускает PostSet событие свойства на рисунке. Объект источника события является определенным рисунком, на которую ссылается указатель fig.

set(fig,'Color','yellow')

Совет

  • Переопределение или удаление переменной, содержащей указатель на прослушиватель (для примера el) не удаляет прослушиватель. Объект события (hSource) все еще имеет ссылку на event.listener объект. addlistener связывает жизненный цикл прослушивателя с объектом, который является источником события.

  • Несмотря на то, что прослушиватель связан с жизненным циклом источника события, прослушиватель продолжает существовать после того, как источник события будет уничтожен, когда:

    • Одна или несколько ссылок на прослушиватель относятся к другим переменным, включая указатель на прослушиватель, если он был задан при создании.

    • Прослушиватель привязан к другим источникам событий.

  • Чтобы удалить прослушиватель, удалите объект прослушивателя, возвращенный addlistener. Для примера,

    delete(el)

    вызывает метод удаления класса handle, чтобы удалить объект из рабочей области и удалить прослушиватель.

  • Чтобы задать прослушиватель, который не связан с объектом события, используйте event.listener конструктор непосредственно для создания прослушивателя.

Альтернативы

Когда вам нужен жизненный цикл объекта прослушивателя, чтобы быть независимым от жизненного цикла исходного объекта, используйте listener для создания прослушивателей.

Введенный в R2008a