Шаблон функции запуска цепочки эффектов определенного типа на виджете. Является абстрактным и не может быть вызван непосредственно.
На виджете в один момент времени может существовать не более одного эффекта / цепочки эффектов каждого типа. При запуске эффекта / цепочки эффектов имеющийся эффект / цепочка эффектов того же типа будет прерван.
-- Класс WidgetSafe или один из его наследников (зависит от типа эффекта) -- Семантика function PlayEffect( self, sequenceParams ) -- Входные параметры self: WidgetSafe - Виджет на котором запускается эффект sequenceParams: table - Таблица описывающая параметры цепочки эффектов. Обязательные поля: [ 1 ] .. [ N ] - N (1 <= N <= 256, без разрывов) таблиц описателей шага эффекта, каждый описатель шага это таблица вида { start, finish, timeMs, algoDesc }. Описание полей таблицы описателя шага start: (тип зависит от типа эффекта) or nil - Начальное состояние виджета, может отсутствовать или быть не полным (в случае табличного описателя), в этом случае недостающие данные будут взяты из текущего состояния виджета (на 1 шаге) или из конечного состояния на предыдущем шаге finish: (тип зависит от типа эффекта) or nil - Конечное состояние виджета, может отсутствовать или быть не полным (в случае табличного описателя), в этом случае недостающие данные будут взяты из начального состояния виджета timeMs: number (int64) or nil - Длительность эффекта в миллисекундах, должно быть строго положительное, в случае nil используется значение 1000. algoDesc: number (int) or table or nil - описание алгоритма эффекта: nil - Значение по умолчанию - EA_MONOTONOUS_INCREASE int - Значение EA_* table - Описание алгоритма EA_* с параметрами, обязательное поле type - number (int) - значение EA_*, набор полей зависит от алгоритма (смотри описание алгоритмов эффектов) Опциональные поля: showOnStart: boolean or nil - показать виджет перед началом цепочки эффектов, по умолчанию false hideOnFinish: boolean or nil - скрыть виджет после окончания цепочки эффектов, по умолчанию false cycled: boolean or nil - зациклить цепочку эффектов, по умолчанию false Примечание: зацикленная цепочка эффектов будет исполняться до явного прерывания, соответственно оно должно существовать. sendStepEvent: boolean or nil - посылать событие об окончании каждого промежуточного шага эффекта (но не последнего), по умолчанию false sendFinishEvent: boolean or nil - послать событие об окончании цепочки эффектов, по умолчанию false eventLabel: string or number or nil - не влияет на работу цепочки эффектов, при наличии будет присылаться в событиях шага / окончания цепочки, приводится к строке, по умолчанию отсутствует. startOffsetMs: number (int64) or nil - С какой миллисекунды начать цепочку эффектов (может быть больше длительности цепочки, тогда start = start % duration), нужно для синхронизации эффектов на разных виджетах, по умолчанию 0 -- Возвращаемые значения Нет