Перейти к основному содержимому

API iRidium. Анимация

Нативные методы для создания анимации объектов iRidium Studio.

документация обновлена 01.01.2024

Подсказка

Пример: Animation

Описание

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

Методы

Методы создания, редактирования и удаления анимаций:

IR.AddAnimation()

Создание анимации.

Синтаксис:

IR.AddAnimation( 

[ in_oAnimation1, in_oAnimation2, … , in_oAnimationN ]

[ in_rItem1, in_rItem2, … , in_rItemN ]

in_nDuration,

in_nDelay,

in_bRepeat,

in_bAutostart,

in_rStartCallBack,

in_rEndCallBack,

in_oContext

);

На входеЗначениеОписание
[ in_oAnimation1, in_oAnimation2, … , in_oAnimationN ]Type: IR.ANIMATION_MOVE_HORIZONTAL,
Tween: IR.LINEAR,
Duration: 1000,
From: 421,
To: 300,
Return: true,
Repeat: true
type: Object
Массив анимаций, либо единичный объект в виде JSON объекта
Type: тип анимации из списка
Tween: тип твинера из списка (дополнительно)
Delay: задержка запуска анимации (дополнительно)
Duration: длительность анимации (дополнительно)
Repeat: повторяемость анимации (дополнительно)
Return: переворот анимации в обратную сторону после конца (дополнительно)
Parameter1: Value1

ParameterN: ValueN
[ in_rItem1, in_rItem2, … , in_rItemN ]["UI.Page 2.Item 21"],
IR.GetPage("Page 2").GetItem("Item 1")
type: Object
Массив элементов, либо единичный элемент в виде ссылки на графический элемент
in_nDuration1000type: Number
Длительность анимации (массива анимаций) (мс)
in_nDelay0type: Number
Задержка при старте анимации (массива анимаций) (мс)
in_bRepeatfalsetype: Boolean
Зацикливание анимации (массива анимаций)
in_bAutostartfalsetype: Boolean
Флаг автоматического старта анимации при создании
in_rStartCallBackfunction onStart()
IR.Log(this.OnStart)
type: Object
Колбек начала - активирует функцию при старте анимации
in_rEndCallBackfunction onEnd()
IR.Log(this.OnEnd)
type: Object
Колбек окончания - активирует функцию по окончанию анимации
in_oContextOnStart: "Animation started",
OnEnd: "Animation ended"
type: Object
Вызываемый контекст колбеков - функция (this), которую можно вызвать по колбеку начала или окончания анимации
На выходе
in_oAnimationanimationtype: Object
Объект анимации
примечание

Параметры анимации зависят от типа анимации, с полным списком параметров можно ознакомиться здесь.

Координаты элемента по X и Y описаны на вкладке General, а так же на динамической панели iRidium Studio. Начало координат расположено в левом верхнем углу.

Пример

//Пример 1 (перемещение элемента по горизонтали из координаты X = 421 в координату X = 300 и обратно 
// в течении 1 секунды):

var animation;
//создаём объект анимации:
animation = IR.AddAnimation({
Type: IR.ANIMATION_MOVE_HORIZONTAL, // тип анимации: перемещение по горизонтали
Tween: IR.LINEAR, // линейная функция
Duration : 1000, //длительность анимации 1 сек.
From : 421, // начальная точка X=421
To: 300, // конечная точка Х = 300
Return: true, // повтор анимации в обратном порядке после окончания
Repeat: false // не зацикливать анимацию
},
IR.GetPage("Page 2").GetItem("Item 1"), // привязываем анимацию к элементу
1000, // длительность анимации (массива анимаций)
0, // задержка анимации = 0 (массива анимаций)
false, // анимация (массив анимаций) не зациклина
false, // анимация не начинается по запуску приложения
)

//Пример 2 (перемещение элемента по горизонтали из координаты X = 421 в координату X = 300 и обратно
// в течении 1 секунды с вызовом функций начала и конца анимации):

//создаём объект анимации:
var animation = IR.AddAnimation({
Type: IR.ANIMATION_MOVE_HORIZONTAL, // тип анимации: перемещение по горизонтали
Tween: IR.LINEAR, // линейная функция
Duration : 1000, //длительность анимации 1 сек.
From : 421, // начальная точка X=421
To: 300, // конечная точка Х = 300
Return: true, // повтор анимации в обратном порядке после окончания
Repeat: false // не зацикливать анимацию
},
IR.GetPage("Page 2").GetItem("Item 1"), // привязываем анимацию к элементу
1000, // длительность анимации (массива анимаций)
0, // задержка анимации = 0 (массива анимаций)
false, // анимация (массив анимаций) не зациклина
false, // анимация не начинается по запуску приложения
function() { // активация функции по старту анимации (колбек начала)
IR.Log(this.OnStart);
},
function() { // активация функции по окончанию анимации (колбек окончания)
IR.Log(this.OnEnd);
},
{ OnStart : "Анимация стартовала", OnEnd : "Анимация закончилась" } // описание функций (вызываемый контекст колбеков)
)

IR.RemoveAnimation()

Удаление анимации.

Синтаксис:

IR.RemoveAnimation(in_oAnimation);

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.

Пример

animation = IR.AddAnimation({
Type: IR.ANIMATION_SIZE_HORIZONTAL,
Tween: IR.TWEEN_SINE_IN,
Duration : 1000,
From: 96,
To: 189,
Return: true,
Repeat: true
},
["UI.Page 2.Item 21"],
1000,
0,
true,
false,
)

IR.RemoveAnimation(animation)

IR.StartAllAnimations()

Старт всех анимаций.

Синтаксис:

IR.StartAllAnimations();

На входеЗначениеОписание
---------

Пример

function doStartAll() 
{
IR.StartAllAnimations();
}

IR.StopAllAnimations()

Остановка всех анимаций.

Синтаксис:

IR.StopAllAnimations();

На входеЗначениеОписание
--------

Пример

function doStopAll() {
IR.StopAllAnimations();
}

.Start()

Запуск анимации.

Синтаксис:

in_oAnimation.Start();

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.

Пример

function doStart() {
animation.Start();
}

.Stop()

Остановка анимации.

Синтаксис:

in_oAnimation.Stop();

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.

Пример

function doStop() {
animation.Stop();
}

.AddItem()

Добавление графического элемента к анимации

Синтаксис:

in_oAnimation.AddItem(Item)

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.
ItemIR.GetPage("Page 2").GetItem("Item 21")type: Object
Объект графического элемента.

Пример

function doAddItem() {
animation.AddItem(IR.GetPage("Page 2").GetItem("Item 21"));
}

.RemoveItem()

Удаление графического элемента из анимации.

Синтаксис:

in_oAnimation.RemoveItem(Item)

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.
ItemIR.GetPage("Page 2").GetItem("Item 21")type: Object
Объект графического элемента.

Пример

function doRemoveItem() {
animation.RemoveItem(IR.GetPage("Page 2").GetItem("Item 21"));
}

.AddParameter()

Добавить параметр к анимации.

Синтаксис:

in_oAnimation.AddParameter(Parameter)

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.
ParameterType: IR.ANIMATION_SIZE_HORIZONTAL
Tween: IR.TWEEN_SINE_IN
Duration: 1000
From: 96
To: 189
Return: true
Repeat: true
type: Object
Параметр анимации.

Пример

animation.AddParameter({
Type: IR.ANIMATION_SIZE_HORIZONTAL,
Tween: IR.TWEEN_SINE_IN,
Duration : 1000,
From: 96,
To: 189,
Return: true,
Repeat: true
})

.GetParameter()

Получить параметр по индексу.

Синтаксис:

in_oAnimation.GetParameter(Index)

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.
Index0-ntype: Number
Номер параметра по порядку.
На выходе
ParameterType: IR.ANIMATION_SIZE_HORIZONTAL
Tween: IR.TWEEN_SINE_IN
Duration: 1000
From: 96
To: 189
Return: true
Repeat: true
type: Object
Параметр анимации.

Пример animation.GetParameter(0);

.GetParametersCount()

Получить количество параметров.

Синтаксис:

in_oAnimation.GetParametersCount()

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.
На выходе
num4type: Number
Количество параметров.

Пример animation.GetParametersCount() //4

.RemoveParameter()

Удалить параметр по индексу.

Синтаксис:

in_oAnimation.RemoveParameter(Index)

На входеЗначениеОписание
in_oAnimationanimationtype: Object
Объект анимации.
Index0-ntype: Number
Номер параметра по порядку.

Пример animation.RemoveParameter(0)

Тип анимации

Тип анимации - это заданное направление движения, вращение, скрытие и другие возможности анимации элементов.

  • IR.ANIMATION_MOVE_HORIZONTAL - перемещение элемента по горизонтали из точки в точку;
  • IR.ANIMATION_MOVE_VERTICAL - перемещение элемента по вертикали из точки в точку;
  • IR.ANIMATION_MOVE - перемещение элемента по диагонали из точки в точку;
  • IR.ANIMATION_SHIFT_HORIZONTAL - смещение элемента на определённое кол-во пикселей по горизонтали;
  • IR.ANIMATION_SHIFT_VERTICAL - смещение элемента на определённое кол-во пикселей по вертикали;
  • IR.ANIMATION_SHIFT - смещение элемента на определённое кол-во пикселей по диагонали пропорционально;
  • IR.ANIMATION_SIZE_HORIZONTAL - изменение размеров элемента по горизонтали;
  • IR.ANIMATION_SIZE_VERTICAL - изменение размеров элемента по вертикали;
  • IR.ANIMATION_SIZE - изменение размеров элемента по диагонали пропорционально;
  • IR.ANIMATION_SCALE_HORIZONTAL - масштабирование элемента по горизонтали;
  • IR.ANIMATION_SCALE_VERTICAL - масштабирование элемента по вертикали;
  • IR.ANIMATION_SCALE - масштабирование элемента по диагонали пропорционально;
  • IR.ANIMATION_ROTATE - вращение элемента;
  • IR.ANIMATION_OPACITY - отображение/скрытие элемента;
  • IR.ANIMATION_VALUE - изменение значения Value элемента.

Параметры анимации

Каждый тип анимации обладает своими уникальными параметрами:

IR.ANIMATION_MOVE_HORIZONTAL

  • From - начальная точка перемещения по X (default = текущая позиция);
  • To - конечная точка перемещения по X (default = текущая позиция).

IR.ANIMATION_MOVE_VERTICAL

  • From - начальная точка перемещения по Y (default = текущая позиция);
  • To - конечная точка перемещения по Y (default = текущая позиция).

IR.ANIMATION_MOVE

  • From - начальная точка перемещения по X и Y (default = текущая позиция);
  • To - конечная точка перемещения по X и Y (default = текущая позиция);
  • FromX - координата X начальной точки перемещения (default = текущая позиция);
  • FromY - координата Y начальной точки перемещения (default = текущая позиция);
  • ToX - координата X конечной точки перемещения (default = текущая позиция);
  • ToY - координата Y конечной точки перемещения (default = текущая позиция).
примечание

Если есть параметры FromX, FromY, ToX, ToY - используются они, иначе From и To соответственно.

IR.ANIMATION_SHIFT_HORIZONTAL

  • From - начальный сдвиг элемента по горизонтали в пикселях (0 - текущее положение, -100 - левее на 100px, 200 - правее на 200px etc.) (default = 0);
  • To - количество пикселей на которое элемент будет сдвинут по горизонтали (default = 0).

IR.ANIMATION_SHIFT_VERTICAL

  • From - начальный сдвиг элемента по вертикали в пикселях (0 - текущее положение, -100 - левее на 100px, 200 - правее на 200px etc.) (default = 0);
  • To - количество пикселей на которое элемент будет сдвинут по вертикали (default = 0).

IR.ANIMATION_SHIFT

  • From - начальный сдвиг элемента по диагонали в пикселях (0 - текущее положение, -100 - левее и выше на 100px, 200 - правее и ниже на 200px etc.) (default = 0);
  • To - количество пикселей на которое элемент будет сдвинут по диагонали (default = 0);
  • FromHorizontal - начальный сдвиг элемента по горизонтали в пикселях (0 - текущее положение, -100 - левее на 100px, 200 - правее на 200px etc.) (default = 0);
  • FromVertical - начальный сдвиг элемента по вертикали в пикселях (0 - текущее положение, -100 - левее на 100px, 200 - правее на 200px etc.) (default = 0);
  • ToHorizontal - количество пикселей на которое элемент будет сдвинут по горизонтали (default = 0);
  • ToVertical - количество пикселей на которое элемент будет сдвинут по вертикали (default = 0).
примечание

Если есть параметры FromHorizontal, FromVertical, ToHorizontal, ToVertical - используются они, иначе From и To соответственно.

IR.ANIMATION_SIZE_HORIZONTAL

  • From - изначальная ширина элемента (default = текущая ширина);
  • To - конечная ширина элемента (default = текущая ширина).

IR.ANIMATION_SIZE_VERTICAL

  • From - изначальная высота элемента (default = текущая высота);
  • To - конечная высота элемента (default = текущая высота).

IR.ANIMATION_SIZE

  • From - изначальная ширина и высота элемента (default = текущие значения);
  • To - конечная ширина и высота элемента (default = текущие значения);
  • FromWidth - изначальная ширина элемента (default = текущая ширина);
  • FromHeight - изначальная высота элемента (default = текущая высота);
  • ToWidth - конечная ширина элемента (default = текущая ширина);
  • ToHeight - конечная высота элемента (default = текущая высота).
примечание

Если есть параметры FromWidth, FromHeight, ToWidth, ToHeight - используются они, иначе From и To соответственно.

IR.ANIMATION_SCALE_HORIZONTAL

  • From - начальный коэффициент ширины (если отсутствует, то 1);
  • To - конечный коэффициент ширины (если отсутствует то 1).

IR.ANIMATION_SCALE_VERTICAL

  • From - начальный коэффициент высоты(если отсутствует, то 1);
  • To - конечный коэффициент высоты(если отсутствует то 1).

IR.ANIMATION_SCALE

  • From - начальный коэффициент размера (если отсутствует, то 1);
  • To - конечный коэффициент размера (если отсутствует, то 1);
  • FromHorizontal - начальный коэффициент ширины (если отсутствует, то 1);
  • FromVertical - начальный коэффициент высоты (если отсутствует, то 1);
  • ToHorizontal - конечный коэффициент ширины (если отсутствует, то 1);
  • ToVertical - конечный коэффициент высоты (если отсутствует, то 1).
примечание

Если есть параметры FromHorizontal, FromVertical, ToHorizontal, ToVertical - используются они, иначе From и To соответственно.

IR.ANIMATION_ROTATE

  • From - стартовый угол вращения (если отсутствует, то вращение с текущего положения угла);
  • To - конечный угол вращения.

IR.ANIMATION_OPACITY

  • From - стартовая прозрачность элемента (default = текущая прозрачность);
  • To - конечная прозрачность элемента (default = текущая прозрачность).

IR.ANIMATION_VALUE

  • From - начальное значение (default = текущее значение);
  • To - конечное значение (default = текущее значение).

Тип твинера

Твинер - тип вычисления анимации. Формула определяет, как будет вычисляться промежуточное значение на выбранном отрезке. Каждая формула имеет свой номер, который следует передать в функцию при создании анимации.

TypeOfTween.png

Имена и номера формул:

  • IR.TWEEN_LINEAR = 0;
  • IR.TWEEN_SINE_IN = 1;
  • IR.TWEEN_SINE_OUT = 2;
  • IR.TWEEN_SINE_IN_OUT = 3;
  • IR.TWEEN_QUINT_IN = 4;
  • IR.TWEEN_QUINT_OUT = 5;
  • IR.TWEEN_QUINT_IN_OUT = 6;
  • IR.TWEEN_QUART_IN = 7;
  • IR.TWEEN_QUART_OUT = 8;
  • IR.TWEEN_QUART_IN_OUT = 9;
  • IR.TWEEN_QUAD_IN = 10;
  • IR.TWEEN_QUAD_OUT = 11;
  • IR.TWEEN_QUAD_IN_OUT = 12;
  • IR.TWEEN_EXPO_IN = 13;
  • IR.TWEEN_EXPO_OUT = 14;
  • IR.TWEEN_EXPO_IN_OUT = 15;
  • IR.TWEEN_ELASTIC_IN = 16;
  • IR.TWEEN_ELASTIC_OUT = 17;
  • IR.TWEEN_ELASTIC_IN_OUT = 18;
  • IR.TWEEN_CUBIC_IN = 19;
  • IR.TWEEN_CUBIC_OUT = 20;
  • IR.TWEEN_CUBIC_IN_OUT = 21;
  • IR.TWEEN_CIRC_IN = 22;
  • IR.TWEEN_CIRC_OUT = 23;
  • IR.TWEEN_CIRC_IN_OUT = 24;
  • IR.TWEEN_BOUNCE_IN = 25;
  • IR.TWEEN_BOUNCE_OUT = 26;
  • IR.TWEEN_BOUNCE_IN_OUT = 27;
  • IR.TWEEN_BACK_IN = 28;
  • IR.TWEEN_BACK_OUT = 29;
  • IR.TWEEN_BACK_IN_OUT = 30.