Инструменты пользователя

Инструменты сайта


lm2:ce:s_anim

Использование анимации

При установке значения атрибута какого-либо графического элемента (например при помощи команды Set в .lua файле) есть два варианта: установка непосредственного значения и использование анимации.

Простой вызов команды Set - установка непосредственного значения. Например, чтобы сделать видимой панель front, нужно написать:

Set('front.Visible..=true')

Использование специального формата позволит изменяться во времени значению атрибута. Формат выглядит следующим образом:

ani(<время1>:<значение1>;<время2>:<значение2>;...;<времяN>:<значениеN>)

Время задается в миллисекундах.

Например, чтобы панель front плавно исчезала, нужно написать следующее:

Set('front.*.*.Opacity=ani(0:1.0;200:0.0)')
Set('front.Visible..=ani(0:true;200:false)')

Здесь значение непрозрачности всех подэлементов всех элементов на панели за 0.2 сек изменится от 1 до 0, и после этого, свойство видимости панели установится в false.

Особенности:

Значения числовых или цветовых атрибутов изменяются линейно во времени.

Значения булевых или строковых атрибутов изменяют свое значение в момент окончания временного интервала.

Чтобы зациклить анимацию, нужно выставить в качестве последней пары в формате ani(…) значение - loop:true. Например, мигающая рамка:

Set('front.some_element.selection.Opacity=ani(0:0;1000:1;2000:0;loop:true')

Анимация считается отдельно от атрибута, при просчете в атрибут копируется новое значение, поэтому если выполнить:

Set('front.Visible..=ani(0:true;1000:false)')

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

Set('front.Visible..=true')

то после истечения одной секунды после первой команды, значению front.Visible.. будет все равно присвоено значение false. Чтобы перебить анимацию в таком случае, можно использовать конструкцию:

Set('front.Visible..=ani(0:true)')
lm2/ce/s_anim.txt · Последнее изменение: 2020/11/30 14:12 (внешнее изменение)