QML类型说明-Animation

Animation

Import Statement: import QtQuick 2.2

Inherited By:  AnchorAnimation, ParallelAnimation,ParentAnimation, PathAnimation,

                       PauseAnimation, PropertyAction,PropertyAnimation,

                       ScriptAction, and SequentialAnimation.

 

Properties

alwaysRunToEnd : bool

loops : int

paused : bool

running : bool

Signals

started()

stopped()

Methods

complete()

pause()

restart()

resume()

start()

stop()

 

DetailedDescription

Animation元件不能被QML直接使用。这个元件是为其他元件提供共同的属性和方法的。使用这些共同属性和方法的动画继承于这个元件。直接使用这个元件将导致错误。

 

PropertyDocumentation

alwaysRunToEnd : bool

这个属性决定了动画是否会在停止设置时播放到结束。如果这个值为真,不管running被设置成假还是调用了stop()方法,动画都将继续播放到结束。complete()方法不影响这个值。这常常用于loops属性被设置,除了动画重起,动画将播放完成。默认为假。

注意这个属性不影响动画的过渡部分。

 

loops : int

动画循环播放的次数,默认为1,表示动画只播放一次。如果这个值设置成Animation.Infinite,则动画将无限循环下去。直到显式的设置running为假或调用stop()方法,动画才会停止。

下面是矩形无限旋转的例子。

Rectangle {

width: 100; height: 100; color: "green"

RotationAnimation on rotation {

loops: Animation.Infinite

from: 0

to: 360

}

}

 

paused : bool

这个属性表示了当前动画是否处于暂停状态。设置这个属性可以控制动画是否暂停。我们也可以通过Java脚本调用pause()和resume()方法控制动画的暂停。默认为假。

 

running : bool

动画是否在播放,设置这个属性能控制动画是否播放。

下面的例子当鼠标按下时,长方形将移动一次。

Rectangle {

width: 100; height: 100

NumberAnimation on x {

running: myMouse.pressed

from: 0; to: 100

}

MouseArea { id: myMouse }

}

下面的代码显示动画是否在运行。

NumberAnimation { id: myAnimation }

Text { text: myAnimation.running ? "Animation isrunning" : "Animation is not running" }

动画也能通过Java脚本调用start() 和stop()方法立刻开始或停止播放。

默认动画是不运行的。但这个元件的继承者们常常会默认设置这个属性为运行。

 

SignalDocumentation

started()

当动画开始,这个信号被发射。它只在独立动画的顶层被触发。Behavior、Transition或动画组中的一个动画,都不会触发这个信号。关联程序是onStarted。

 

stopped()

动画结束时发射这个信号。手动停止或运行完成,都发射这个信号。但它只在独立动画的顶层触发。Behavior、Transition或动画组的一个动画,都不触发它。如果alwaysRunToEnd是真,这个信号将在当前的动画播放完毕时出发。关联程序是onStopped.

 

MethodDocumentation

complete()

停止动画,跳到终点。如果动画没有播放,调用这个方法没有影响。这个方法将设置running为假。不像stop()方法,这个方法让动画快速结束。

Rectangle {

NumberAnimation on x { from: 0; to: 100; duration:500 }

}

在250毫秒呼叫stop()方法,x为50;呼叫complete()方法,x为100。

 

pause()

动画暂停。如果动画是暂停或没有播放,调用这个方法没有任何影响。paused属性会被这个方法设置为真。

 

restart()

重启动画。这是简便的方法,等效于stop()然后start()。

 

resume()

继续暂停的动画。如果动画不是暂停或没有播放,调用这个方法没有影响。paused被这个方法设置成假。

 

start()

开始动画。如果动画已经播放,调用这个方法没有影响。running将被这个方法设置成真。

 

stop()

停止动画,如果动画没有播放,调用这个方法没有影响。running和paused会被这个方法设置成假。

这个方法通常会立即停止动画。

Rectangle {

NumberAnimation on x { from: 0; to: 100; duration:500 }

}

250毫秒的时候停止,x属性将会是50。当alwaysRunToEnd被设置,动画依旧会运行到完成,但running属性将被立刻设置成假。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值