При установке значения атрибута какого-либо графического элемента (например при помощи команды 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)')