VB在实现图形动画方面,有其独到之处,下面笔者就谈谈使用VB3.0专业版实现图形动画的三种方法。
动画由两个基本部分组成。一是物体相对于屏幕的运动,即屏幕级动画;二是物体内部的运动,即相对符号的动画。制作动画的原理就是画完一幅图形,清除它的屏幕显示部分,再在新位置画第二幅图形,如此交替下去,利用人眼的视觉效应,就可以产生动画效果,VB实现动画的原理也如此,但VB它不要求编程人员详细了解图形如何再现和清除,这些工作由VB提供的工具来做,这样就使VB实现动画很方便,编程也很简捷。
1.控制的移动。采用控制的移动技术可实现屏幕级动画,而控制移动方式又可分两种:一是在程序运行过程中,随时更改控制的位置坐标Left、Top属性,使控制出现动态;二是对控制调用MOVE方法,产生移动的效果。这里的控制可以是命令按钮、文本框、图形框、图像框、标签等。
2.利用动画按钮控制。VB的工具箱中专门提供了一个动画按钮控制(Animated Button Control)进行动画设计,该工具在Windows\system子目录下以Anibuton.vbx文件存放,用时可加入项目文件中,这种方法实现动画的过程与电影胶片的放映极为相似,它将多幅图像装入内存,并赋予序号,通过定时或鼠标操作进行图像的切换,通过这种方法可实现相对符号的动画。此控制的有关属性介绍如下:
(1)Picture和Frame属性:Pieture属性可装入多幅图像,由Frame属性作为控制中多幅图像数组的索引,通过选择Frame值来指定访问或装入哪一幅图像,这里Picture属性可装入.bmp、.ico和.wmf文件。
(2)Cycle属性:该属性可设置动画控制中多幅图像的显示方式
(3)PictDrawMode属性:该属性设置控制的大小与装入图像大小之间的调整关系。
(4)Speed属性:表示动态切换多幅图的速度,以毫秒(ms)为单位,一般设置小于100范围内。
(5)Specialop属性:该属性在程序运行时设置,与定时器连用,来模拟鼠的Click操作,不需用户操作触发,而由系统自动触发进行动态图的切换。
3.利用图片剪切换控制。该控制也提供了在一个控制上存储多个图像或图标信息的技术,正如用动画按钮一样,它保存Windows资源并可快速访问多幅图像,该控制的访问方式不是依次切换多幅图,而是先将多幅图放置在一个控制中,然后在程序设计时利用选择控制中的区域,将图动态剪切下来放置于图片框中进行显示,程序控制每间隔一定时间剪切并显示一幅图,这样便可产生动画效果。该工具以Picelip.vbx文件存于Windows\system子目录中,需要时可装入项目文件中。此控制有关属性介绍如下:
(1)Rows Cols属性:规定该控制总的行列数。
(2)Picture属性:装入图像信息,仅能装入位图.bmp文件。
(3)Clip X、Clip Y属性:指定要剪切图位于控制中的位置,左上角坐标。
(4)ClipWidth、ClipHeight属性:表示需剪切图的大小,即指定剪切区域。
(5)Clip属性:设计时无效,执行时只读,用于返回(3)、(4)两项指定的图像信息。
(6)Grahiceell属性:该属性为一个数组,用于访问Picture属性装入图像中的第一个图像元素。
(7)Stretch X、Stretch Y属性:设计时无效,执行时只读,在将被选中图像装入拷贝时定义大小显示区域,单位为像素(Pixcls)。
以上笔者只谈了VB实现图形动画的基本方法,有兴趣的读者可参考有关书目。
摘自:天极网
-
vb教程之VB实现图形动画的三种方法
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比