[редактировать]

Animation

  • class Animation (action\Animation)
use action\Animation;

Утилитный класс только со статичными методами, для анимирования визуальных компонентов. Класс поддерживает следующие типы анимаций:

  • Затухание, изменение прозрачности.
  • Изменение масштаба, размеров.
  • Изменение позиции, смещение.

У класса приватный конструктор, невозможно создать объект данного класса.


Статичные методы

  • Animation ::fadeTo() - анимация изменения прозрачности
  • Animation ::fadeIn() - анимация появления
  • Animation ::fadeOut() - анимация затухания
  • Animation ::scaleTo() - анимация изменения масштаба
  • Animation ::stopScale() - остановить анимацию изменения масштаба
  • Animation ::moveTo() - анимация перемещения к точке
  • Animation ::stopMove() - остановить анимацию перемещения
  • Animation ::displace() - анимация смещения

fadeTo()

fadeTo(UXNode|UXWindow $object, int $duration, double $value, callable $callback = null)

Анимирует уровень прозрачности объекта, объектом может быть любой визуальный компонент UXNode или окно UXWindow. Метод принимает следующие параметры:

  • $object объект, который надо анимировать.
  • $duration длительность анимации в мл. секундах, 1 сек = 1000 млсек.
  • $value уровень конечной непрозрачности объекта, от 0 до 1, где 0 это 0%, а 1 это 100%, 0.5 - 50%.
  • $callback необязательный параметр, коллбэк функция, которая будет вызвана после окончания анимации.
// анимировать кнопку, длительность анимации 3 сек, конечный уровень непрозрачности 70%.
Animation::fadeTo($button, 3000, 0.7);

// с коллбэком.
Animation::fadeTo($button, 3000, 0.7, function () {
    alert('Анимация окончена.');
});

fadeIn()

fadeIn(UXNode|UXWindow $object, int $duration, callable $callback = null)

Упрощенный метод для fadeTo(), метод доводит уровень непрозрачности компонента до 1, т.е. до 100%. Анимация появления, объект становится плавно видимым. Однако, чтобы она работала, объект должен быть хотя бы немного прозрачным изначально. Метод принимает следующие параметры:

  • $object объект, который надо анимировать, любой визуальный компонент UXNode или окно UXWindow.
  • $duration длительность анимации в мл. секундах, 1 сек = 1000 млсек.
  • $callback необязательный параметр, коллбэк функция, которая будет вызвана после окончания анимации.
Animation::fadeIn($button, 5000);

// это аналогично fadeTo с параметром $value = 1.0
Animation::fadeTo($button, 5000, 1.0);

fadeOut()

fadeOut(UXNode|UXWindow $object, int $duration, callable $callback = null)

Упрощенный метод для fadeTo(), метод доводит уровень непрозрачности компонента до 0, т.е. до 0%. Анимация исчезания, объект становится плавно невидимым. Метод принимает следующие параметры:

  • $object объект, который надо анимировать, любой визуальный компонент UXNode или окно UXWindow.
  • $duration длительность анимации в мл. секундах, 1 сек = 1000 млсек.
  • $callback необязательный параметр, коллбэк функция, которая будет вызвана после окончания анимации.
Animation::fadeOut($button, 5000);

// это аналогично fadeTo с параметром $value = 0
Animation::fadeTo($button, 5000, 0);

scaleTo()

scaleTo(UXNode $object, int $duration, double $value, callable $callback = null)

Метод появился в DevelNext 16 RC-2.

Анимация изменения масштаба объекта, уменьшение или увеличение. Обратите внимание, что свойства height и width у объекта не меняются, меняются другие свойства scaleX и scaleY.

Метод принимает следующие параметры:

  • $object объект, который надо анимировать, любой визуальный компонент UXNode.
  • $duration длительность анимации в мл. секундах, 1 сек = 1000 млсек.
  • $value во сколько раз изменить масштаб объекта от начального размера, 1 - оригинальный размер, 1.5 - в полтора раза, 2 - в 2 раза увеличить, 0.5 - уменьшить в 2 раза, и т.д.
  • $callback необязательный параметр, коллбэк функция, которая будет вызвана после окончания анимации.
// анимировать масштаб кнопки, длительность анимации 3 сек, уменьшает кнопку в 2 раза - 0.5 от изначального размера.
Animation::scaleTo($button, 3000, 0.5);

// с коллбэком.
Animation::scaleTo($button, 3000, 0.5, function () {
    alert('Анимация окончена.');
});

stopScale()

stopScale(UXNode $object)

Метод появился в DevelNext 16 RC-2.

Метод прерывает анимацию масштабирования (см. scaleTo() метод). Необходимо передать один параметр, это сам объект анимации - визуальный компонент UXNode.

Animation::stopScale($button);

moveTo()

moveTo(UXNode|UXWindow $object, int $duration, double $x, double $y, callable $callback = null)

Метод плавно перемещает объект к точке $x, $y за отведенное время анимации $duration, которое указывается в мл. секундах (1 сек. = 1000 мл.сек.). Объектом анимации $object может быть любой визуальный компонент UXNode или окно UXWindow.

Координаты (x, y) указываются в абсолютных значениях, если вам нужно сместить объект от начальной точки попробуйте метод displace().

// переместить объект к точке X:100, Y:100 за 3 секунды.
Animation::moveTo($button, 3000, 100, 100);

stopMove()

stopMove(UXNode|UXWindow $object)

Останавливает анимацию перемещения или смещения объекта, см. методы moveTo() и displace().

Animation::stopMove($button);

displace()

displace(UXNode|UXWindow $object, int $duration, double $offsetX, double $offsetY, callable $callback = null)

Смещает объект по оси X, Y от начальной позиции. Метод аналогичен moveTo(), только вместо абсолютной точки использует параметры смещения.

// сместить объект за 3 секунды, по x на 100 пикселей вправо, по y на 300 пикселей вверх.
Animation::displace($button, 3000, 100, -300);