收藏 分享(赏)

五、VFP表单中图片动画效果设计.doc

上传人:weiwoduzun 文档编号:2407624 上传时间:2018-09-14 格式:DOC 页数:4 大小:20KB
下载 相关 举报
五、VFP表单中图片动画效果设计.doc_第1页
第1页 / 共4页
五、VFP表单中图片动画效果设计.doc_第2页
第2页 / 共4页
五、VFP表单中图片动画效果设计.doc_第3页
第3页 / 共4页
五、VFP表单中图片动画效果设计.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、五、VFP 表单中图片动画效果设计当你历尽千辛万苦写完一个应用程序后,肯定是希望它倍受欢迎;一个既有美感又有动感的漂亮封面定会令你的软件魅力倍增。设计封面的一般做法是借助3DS、PowerPoint、3DCool 等工具制作一个可执行文件,然后挂接在你的程序中。这样做固然好,但也有不少缺点,比如会使你的软件变得臃肿,连接有痕迹,效果不够理想灵活等。下面介绍的是如何通过编程的手段来实现动画效果,原理很简单,实现也比较容易,相信对各位会有一定的启发作用。 在 Visual FoxPro 中有个叫定时器(计时器)的控件(Timer 控制),它能按一定的时间间隔规则地执行代码,是实现动画效果的“法宝”

2、。 Timer 控制有个属性Interval 用来指定计时器控制的 Timer 事件之间的时间间隔毫秒数,一般将这个属性值设为 10,也就是说每隔 10 毫秒,将会触发一次计时器的 Timer 事件;在 Timer 事件中写上有条件地改变某个控件的 Height、Width、Top、Left、Visible 等等属性的代码,就能让这个控件按我们的要求动起来。 我们借助 PowerPoint 的一些术语来具体看看各种效果的实现方法: - 1. 缓慢移入和飞入- 这是最容易实现的一种,只需要编程改变控件的 Top 或 Left 属性即可。例如,现有一个名为 Form1 的表单里,已经建立了一个名为

3、 Image1 的图象控制,此控件的Picture 属性已设好,想让这幅图片从底部缓慢移入屏幕,要做那些工作呢?首先,将Image1 的 Top 属性设为 450(或根据你屏幕设置改为别的数字),也就是说,让图片的顶部刚好位于屏幕的下边界;然后,建立一个名为 Timer1 的计时器,并将 Timer1 的Interval 属性设为 10;接着,在 Timer1 的 Timer 事件中,写上几行这样的代码: stayposition=100speed=3If Thisform.Image1.top0 thenThisform.Image1.top=Thisform.Image1.top-spee

4、dElse Thisform.Timer1.enabled=.F.Endif 其中,变量 stayposition 用于控制图片最后停留的位置,变量 speed 用于控制图片的移动速度。运行这个表单,将会看到一幅图片以你需要的速度,从屏幕底部出发,一直移动到你所需要的位置,然后停下来。如果你想程序运行时,要有一定的动作(例如单击屏幕),图片才开始移动,我们可以先把 Timer1 的 Enabled 属性设为.F.,然后在Fomr1 的 Click 事件上写上代码:Thisform.Timer1.enabled=.T.即可。 - 当你真正理解底部缓慢移入的原理和实现方法时,所谓的底部飞入、从右下

5、角缓慢移入、从顶部飞入、从右侧飞入等等效果就轻而易举了,这里简单地说一下:飞入,将 speed 的值改大即可;从顶部移入,稍为复杂一点,要将语句 If Thisform.Image1.topstopwidth thenThisform.Timer1.enabled=.F.ElseThisform.Image1.width=Thisform.Image1.width+speedThisform.Image1.left=Thisform.Image1.left-speedEndif- 这里,变量 stopwidth 的值等于图片的原始宽度。同理,上侧切入的效果只需将上述代码中的 width 改为

6、height,将 left 改为 top,并将图片的 height 属性设为 0 即可。但由于 VFP 的一些限制,左侧切入和下侧切入的效果比较难于实现。 - 3. 擦除 - 向右擦除的效果与从右侧切入非常相象,只是向右擦除看起来是将图片从左往右摊开,而从右侧切入看起来是将图片从右往左拉出来。它们的实现方法也几乎一样,仅将语句 Thisform.Image1.left=Thisform.Image1.left-speed 去掉就行了。同样,向上擦除也是类似的,但向左、向下擦除的效果不易实现。 - 4. 伸展 - 伸展跟切入的效果的区别在于:伸展过程中,整幅图片都能看见,不过是变了形的;而切入的

7、过程中,只能看见图片的一部分。伸展与切入的实现也几乎完全相同,唯一的改动是将图片的 stretch 属性设为 2(等比填充)。同样,其它方向的伸展也是类似的。 - 5. 闪烁 - 这个效果很容易实现。建立计时器,根据你所需要的闪烁速度设好它的Interval 属性,一般可设成 500。在计时器的 timer 事件中写上如下代码: if thisform. Image1.visible=.f. thenthisform. Image1.visible=.t.elsethisform. Image1.visible=.f. endif- 图片 Image1 就能按你的需要闪烁起来,想停止闪烁,将计

8、时器的 enabled 属性设为.f.即可。 -6. 百叶窗 - 这个效果要实现比较复杂,我们先看水平百叶窗。首先,在图片上面建几个白色的空白横条标签,刚好能将图片盖住,这些标签的名字分别取成“label1”、“label2”;然后建立并设好计时器控件,并在计时器的 timer 事件中写上如下代码:speed=3number=5if thisform.label1.height =speed thenfor i=1 to numberj=str(i,int(int(i/10)+9)/10)+1)thisform.label&jheight=thisform.label&jheight-spee

9、dnext iendif- 其中,变量 speed 用于控制图片出现的速度,number 表示标签的个数。一般来说标签的 height 属性要设成 speed 的倍数,而语句 j=str(i,int(int(i/10)+9)/10)+1),是用于根据 i 的值来确定字符 j 的长度,避免出错。至于垂直百叶窗效果,将水平百叶窗效果中的横条标签变成竖条标签,再将代码中的所有 height 改为 width 即可。 - 7. 棋盘式 - 棋盘式的实现方法几乎和百叶窗一样,只是空白标签盖在图片上面的方式不同。在棋盘式中,要先建立许多个标签,但这些标签并不完全把图片遮住,而是设计成国际象棋的棋盘那样,一

10、个格上放标签,另外一个格露出图片,标签依然取名为“label1”、“label2”代码则和百叶窗中的完全相同。 -8. 回旋 表面看来,回旋这种效果是图片在绕着一根轴在旋转,但实际我们可以通过改变图片的 width 属性来实现这种效果。这时最好建立两个计时器,分别命名为timer1、timer2;timer2 用于控制减少图片的宽度,其 timer 事件的代码为: speed=4if thisform.image1.width=imagewidth thenthisform.timer1.enabled=.f.thisform.timer2.enabled=.t.elsethisform.im

11、age1.left=thisform.image1.left-speed/2thisform.image1.width=thisform.image1.width+speedendif- 其中,变量 speed 控制回旋的快慢,值要求是偶数, imagewidth 代表图片的原始宽度,图片的 strecth 属性要设成 2-变比填充。想停止回旋,将 timer1 和 timer2 的enabled 属性都设为.f.即可。 - 9. 放大缩小 - 这种效果虽然看起来与回旋相差甚远,但实现方法却与回旋几乎一样,只需要把图片的 strecth 属性改为 1-等比填充即可,代码不必做任何改动。 - 1

12、0. 变色 - 变色效果一般只应用于文字。变色有许许多多的方式,这里介绍的是随机方式。建立标签对象 label1,设好其 caption 属性;建立计时器,其 Interval 属性根据需要而设,一般可设为 500,在 timer 事件中写上代码: i=int(rand()*255)j=int(rand()*255)k=int(rand()*255)thisform.label1.forecolor=rgb(i,j,k)- 以上是本人在使用 VFP3.0 编程中所积累的一点粗浅经验,使用上述方法所设计出来的软件封面的确堪称豪华。其实,只要懂得了原理,我们可以尽情发挥想象力,设计出各种各样的漂亮效果。而且这个道理还可以应用于 VB 编程。最后,需要补充的一点是,如果想为你的效果增添一点声音,请加上代码: SET BELL TO 你需要的声音.WAV, 0? CHR(7)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报