Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
QML Qt / Qml / 8_Введение в Qt Quick для C.doc
Скачиваний:
82
Добавлен:
28.03.2016
Размер:
215.55 Кб
Скачать

Элементы анимации: плавные переходы

Анимация играет ключевую роль в динамичном пользовательском интерфейсе. В QML эти эффекты создаются путем применения анимационных объектов к значениям свойств объекта, чтобы постепенно их изменять. Анимационные объекты создаются с помощью встроенного набора анимационных элементов, которые могут использовать различные типы анимации. Кроме того, анимационные объекты могут применяться и для других целей в зависимости от контекста.

 

Следующий пример представляет код для анимирования перемещения прямоугольника. В примере создается объект Rectangle с двумя состояниями: нчаальным и конечным. В конечном состоянии прямоугольник сдвигается на вектор (50, 50). Объект Transition определяет, что когда состояние прямоугольника меняется от начального к конечному, все изменения свойств х и у должны быть анимированными. Для этого используется Easing.InOutQuad.

import Qt 4.7 Rectangle {    id: rect    width: 100; height: 100    color: "red"    states: State {       name: "moved"       PropertyChanges { target: rect; x: 50; y: 50 }    }    transitions: Transition {       PropertyAnimation {          properties: "x,y";          easing.type: Easing.InOutQuad       }    } }

Листинг 6. Анимированные переходы между состояниями.

 

На листинге 7 показано, как можно применить множественные переходы к элементу Item. (Напомним, что все, что применяется к Item, распространяется на элемент Rectangle). По умолчанию, переход применяется ко всем изменениям состояния. Для большего контроля можно установить свойства from и to, чтобы применять переход только при изменении одного заданного состояния на другое или между явно заданными состояниями.

Item {    ...    transitions: [       Transition { ... }       Transition { ... }    ] }

Листинг 7. Множественные переходы. Оригинальное руководство: Introduction to Qt Quick for C++ Developers Перевод: Владимир Шабаршин Редактирование: Надежда Лагутина, Илья Парамонов Если вы заметили неточности в приведённом тексте статьи или у вас есть дополнения, пожалуйста, приводите их в комментариях к статье.