1 2 引入文件 import QtQuick 2.5 引入版本 Qt 5.2 继承类 Animator
Animator类型不同于普通Animation动画类型。当使用一个Animator时,动画可以在渲染线程中运行,还有,当动画结束时,属性值将会跳转到结尾。
QML属性的值定义动画完成后统一更新。
以下代码片段显示了如何使用UniformAnimator与ShaderEffect项。
ShaderEffect{
id:shader
width:50
height:50
property variant t;
UniformAnimator{
target:shader
uniform:"t"
from:0
to:1
duration:1000
running:true
}
fragmentShader:
" uniform lowp float t; varying highp vec2 qt_TexCoord0.y; void main(){ lowp float c = qt_TexCoord0.y; gl_FragColor = vec4(0, 0, c * t, 1); } "
}
也可以直接使用关键字来连接
ShaderEffect{
width: 50
height: 50
property variant t;
UniformAnimator on t {
from: 0
to: 1
duration: 1000
}
fragmentShader:
" uniform lowp float t; varying highp vec2 qt_TexCoord0; void main(){ lowp float c = qt_TexCoord0.y; gl_FragColor = vec4(c * t, 0, 0, 1); } "
}
uniform:string
这个属性保存的名称统一的动画。