Пример двойной анимации

Пример создания эффекта двух преобразований (вращения и масштабирования).

Код двойной анимации:

Копировать     Выделить всё

Перем ДФ, АнимацияВращение, АнимацияМасштаб; Процедура Кнопка1_Нажатие() Экспорт АнимацияВращение.Запустить(); АнимацияМасштаб.Запустить(); КонецПроцедуры Процедура Кнопка2_Нажатие() Экспорт АнимацияВращение.Пауза(); АнимацияМасштаб.Пауза(); КонецПроцедуры Процедура Кнопка3_Нажатие() Экспорт АнимацияВращение.Завершить(); АнимацияМасштаб.Завершить(); КонецПроцедуры Процедура Кнопка4_Нажатие() Экспорт АнимацияВращение.Отменить(); КонецПроцедуры ПодключитьВнешнююКомпоненту(ОбъединитьПути(Новый Файл(ТекущийСценарий().Источник).Путь, "DeclarativeForms.dll")); ДФ = Новый ДекларативныеФормы(); Форма1 = ДФ.Форма; Форма1.НачальнаяШирина = 400; Форма1.НачальнаяВысота = 400; Кнопка1 = Форма1.ДобавитьДочерний(ДФ.Кнопка()); Кнопка1.Текст = "Запустить"; Кнопка1.Нажатие = ДФ.Действие(ЭтотОбъект, "Кнопка1_Нажатие"); Кнопка2 = Форма1.ДобавитьДочерний(ДФ.Кнопка()); Кнопка2.Текст = "Пауза"; Кнопка2.Нажатие = ДФ.Действие(ЭтотОбъект, "Кнопка2_Нажатие"); Кнопка3 = Форма1.ДобавитьДочерний(ДФ.Кнопка()); Кнопка3.Текст = "Завершить"; Кнопка3.Нажатие = ДФ.Действие(ЭтотОбъект, "Кнопка3_Нажатие"); Кнопка4 = Форма1.ДобавитьДочерний(ДФ.Кнопка()); Кнопка4.Текст = "Отменить вращение"; Кнопка4.Нажатие = ДФ.Действие(ЭтотОбъект, "Кнопка4_Нажатие"); Блок1 = Форма1.ДобавитьДочерний(ДФ.Блок()); Блок1.Стиль.Границы = ДФ.Границы(2, ДФ.СтильГраницы.Сплошная, ДФ.Цвет.Прозрачный); Блок1.Стиль.Ширина = 45; Блок1.Стиль.Высота = 45; Блок1.Стиль.Отступ = ДФ.Отступ(25, , , 25); Кадр1 = ДФ.Стиль(); Кадр1.ОтступСлева = 10; Кадр1.Сдвиг = ДФ.Поворот(0); Кадр2 = ДФ.Стиль(); Кадр2.ОтступСлева = 300; Кадр2.Сдвиг = ДФ.Поворот(180); Кадры1 = ДФ.Кадры(); Кадры1.Добавить(Кадр1); Кадры1.Добавить(Кадр2); Блок2 = Блок1.ДобавитьДочерний(ДФ.Блок()); Блок2.Стиль.Позиция = ДФ.Позиция.Относительно; Блок2.Стиль.Ширина = 45; Блок2.Стиль.Высота = 45; Блок2.Стиль.Границы = ДФ.Границы(2, ДФ.СтильГраницы.Сплошная, ДФ.Цвет.Красный); Блок2.Стиль.РадиусГраницы = ДФ.РадиусГраницы(5, 5, 5, 5); Блок2.Стиль.ЦветТекста = ДФ.Цвет.Зеленый; Блок2.ДобавитьДочерний(ДФ.Абзац()).Текст = "Блок2"; Кадр3 = ДФ.Стиль(); Кадр3.ЦветФона = ДФ.Цвет.Зеленый; Кадр3.Сдвиг = ДФ.Масштаб(1, 1); Кадр3.Смещение = 0; Кадр4 = ДФ.Стиль(); Кадр4.ЦветФона = ДФ.Цвет.Желтый; Кадр4.Сдвиг = ДФ.Масштаб(1.05, 1.05); Кадр4.Смещение = 0.1; Кадр5 = ДФ.Стиль(); Кадр5.ЦветФона = ДФ.Цвет.Желтый; Кадр5.Сдвиг = ДФ.Масштаб(1.4, 1.4); Кадр5.Смещение = 0.7; Кадр6 = ДФ.Стиль(); Кадр6.ЦветФона = ДФ.Цвет.Красный; Кадр6.Сдвиг = ДФ.Масштаб(1.5, 1.5); Кадр6.Смещение = 1; Кадры2 = ДФ.Кадры(); Кадры2.Добавить(Кадр3); Кадры2.Добавить(Кадр4); Кадры2.Добавить(Кадр5); Кадры2.Добавить(Кадр6); ПараметрыАнимации1 = ДФ.ПараметрыАнимации(3000, ДФ.ФункцияСинхронизации.МедленноВначалеВконце, 600, 1000, ДФ.НаправлениеАнимации.Чередовать, ДФ.ЗаливкаАнимации.Назад, 1000); АнимацияВращение = Блок1.Анимация(Кадры1, ПараметрыАнимации1); АнимацияМасштаб = Блок2.Анимация(Кадры2, ПараметрыАнимации1); Форма1.Открыть();

Смотрите также

Библиотека DeclarativeForms | Примеры тестирования