QML Flipable、Flickable和状态与动画 下篇
创始人
2024-08-01 18:50:13
0

QML Flipable、Flickable和状态动画 下篇是本节要介绍的内容,QML Flipable、Flickable和状态与动画 上篇,在这一节中我们再次讲解一下QML状态动画的知识,然后讲解两个特效:Flipable翻转效果和Flickable弹动效果。

二、Flipable翻转效果

在QML中提供了一种可以将图片翻转的特效Flipable,它具有强烈的3D视觉效果。

我们更改代码如下:

  1. Rectangle{  
  2.     width:300; height:250  
  3.     Flipable{  
  4.         id:flipable; width:back.width; height:back.height  
  5.         property int angle : 0  //翻转角度  
  6.         property bool flipped : false //用来标志是否翻转  
  7.         front: Image {source:”front.png”}  //指定前面的图片  
  8.         back: Image {source:”back.png”}    //指定背面的图片  
  9.         transform:Rotation{ //指定原点  
  10.             origin.x:flipable.width/2; origin.y:flipable.height/2  
  11.             axis.x:0; axis.y:1; axis.z:0 //指定按y轴旋转  
  12.             angle:flipable.angle  
  13.         }  
  14.         states:State{  
  15.             name:”back”  //背面的状态  
  16.             PropertyChanges {target:flipable; angle:180}  
  17.             when:flipable.flipped  
  18.         }  
  19.         transitions: Transition {  
  20.             NumberAnimation{property:”angle”;duration:1000}  
  21.         }  
  22.         MouseArea{  
  23.             anchors.fill:parent  
  24.             onClicked:flipable.flipped =!flipable.flipped  
  25.             //当鼠标按下时翻转  
  26.         }  
  27.     }  

运行效果如下:

QML Flipable、Flickable和状态与动画 下篇

我们可以看到,使用Flipable时,我们需要设置其前面和后面的图片,并设置背面的状态,然后设置旋转,并为状态改变设置动画就可以了。

通过改变转轴和角度,我们可以使用Flipable设计出很多其他特效。

三、Flickable弹动效果

所谓Flickable效果就是你可以拖动它,它会根据你鼠标拖动的速度不同而移动不同的距离,并且这个移动好像有惯性一样,就像你推一下平面上的玩具汽车一样。我们看一个例子。

将程序代码更改如下:

  1. Rectangle{  
  2. width:200; height:200  
  3. Flickable{  
  4. width:200;height:200  
  5. Image{id: picture; source:”01.jpg”}  
  6. contentWidth:picture.width  
  7. contentHeight:picture.height  
  8. }  

这时运行程序,我们拖动整个图片,更改拖动的速度,这种感觉很爽!

QML Flipable、Flickable和状态与动画 下篇

我们拖动图片的角落,它会自动弹回去

QML Flipable、Flickable和状态与动画 下篇

对于这样一个较大的图片,我们可以使用Flickable效果来查看整张图片。其实到底是否可以移动整个图片,取决于contentWidth和contentHeight的大小。

我们如果将代码改为:contentWidth:100;contentHeight:100

那么图片就无法通过拖动显示全部内容了。

对于Flickable效果我们在下一节中还会继续接触到,到时候我们可以看一下它更强的的功能。

这一节中我们讲述了动画效果和两个特效,其实这一节的内容就是整个QML的核心内容。因为QML设计的Declarative界面主要内容就是其动画效果。我们也看到了,其实像翻转效果和弹动效果等都是为手机的触屏而设计的,所以要感受到它的真实效果,***能在一个触屏手机上测试程序。

本文章原创于 www.yafeilinux.com

小结:QML Flipable、Flickable和状态动画 下篇的内容介绍完了,希望本章内容对你有所帮助,更多内容请参考编辑推荐。

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...