说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Visual Basic动画编程技术

HTML文档下载 WORD文档下载 PDF文档下载
Visual Basic动画编程技术
作者:周长发
在Visual Basic 中 利 用Image 和Timer 控 件 能 很 方 便 地 实 现 动 画。 本 文 将 介 绍Visual Basic 动 画 编 程 的 基 本 原 理 和 实 现 三 种 不 同 类 型 动 画 的 编 程 技 术。

一、 基 本 原 理

---- 动 画 是 一 种 运 动 的 模 拟, 其 实 现 方 法 是 在 屏 幕 上 快 速 地 显 示 一 组 相 关 的 图 象。 因 此 实 现 动 画 的 基 础 是 图 象 的 显 示 和 使 图 象 快 速、 定 时 地 移 动 或 变 化。
---- 在Visual Basic 中, 用LoadPicture 函 数 将BMP、ICO 和WMF 格 式 的 图 象 文 件 装 入 内 存, 并 将 函 数 返 回 值 赋 予Image 对 象 的Picture 属 性, 便 能 在Image 对 象 中 显 示 图 象。 使 图 象 移 动 或 变 化 的 基 本 方 法 有 三 种, 即:

用Image 对 象 的Move 方 法 移 动 图 象, 其Left 和Top 属 性 指 示 了Image 对 象 的 当 前 左 上 角 位 置;

调 用LoadPicture 函 数 装 载 不 同 的 图 象, 并 赋 给Image 对 象 的Picture 属 性, 将 在 对 象 中 显 示 不 同 的 图 象, 即 实 现 图 象 变 化;

修 改Image 对 象 的Width 和/ 或Height 属 性 可 以 缩 放 图 象。
---- 使 用Timer 控 件 可 以 实 现 定 时 控 制。Timer 对 象 的Interval 属 性 设 置 了 定 时 间 隔, 即 调 用Timer 事 件 过 程 的 时 间 间 隔。 在Timer 事 件 过 程 中 处 理 控 制Image 对 象 的 移 动 或 变 化, 便 能 实 现 动 画。Timer 对 象 的Interval 值 决 定 了 动 画 的 变 化 或 移 动 速 度, 其 单 位 是 毫 秒(1/1000 秒)。
---- Timer 对 象 的Enabled 属 性 决 定 了Timer 事 件 是 否 有 效。 设 置Enabled 属 性 为True 将 启 动Timer 事 件( 如 启 动 动 画); 为False 则 将 使Timer 事 件 无 效( 如 停 止 动 画)。

二、 无 位 移 动 画

---- 无 位 移 动 画 是 指 动 画 对 象 不 移 动, 但 图 象 不 断 变 化, 其 典 型 例 子 是 翻 书。 实 现 无 位 移 动 画 的 方 法 是, 设 置 好Image 对 象 和Timer 对 象 后, 在Timer 事 件 过 程 中 调 用 调 用LoadPicture 函 数 装 载 不 同 的 图 象, 并 赋 予Image 对 象 的Picture 属 性, 使 对 象 中 显 示 不 同 的 图 象, 即 实 现 图 象 变 化。
---- 下 面 是 翻 书 动 画 的 例 子。 程 序 启 动 时, 在 窗 体 中 显 示 一 本 翻 开 的 书, 用 鼠 标 左 键 点 击 书, 则 将 开 始 翻 书; 再 用 鼠 标 左 键 点 击 书, 则 书 将 停 止 翻 动。 位 图 文 件book1.bmp~ book4.bmp 分 别 表 现 了 翻 书 时, 正 在 翻 的 书 页 的 不 同 位 置, 它 们 存 放 在 当 前 工 程 所 在 的 目 录 中。

---- 在 需 显 示 动 画 的 窗 体(Form1) 中 设 置Image 对 象Image1 和Timer 对 象Timer1, 并 按 下 表 设 置 它 们 的 属 性, 未 列 出 的 属 性 使 用 缺 省 值。

.
.
.


三、 单 帧 位 移 动 画

---- 单 帧 位 移 动 画, 是 指 同 一 幅 图 象 的 位 置 不 断 变 化 而 形 成 的 动 画, 其 典 型 实 例 时 云 彩 被 风 吹 动。 编 制 单 帧 位 移 动 画 的 方 法 是 在Timer 事 件 过 程 中 调 用Image 对 象 的Move 方 法 来 移 动 图 象。
---- 下 面 是 云 彩 移 动 的 例 子。 程 序 启 动 时, 在 窗 体 中 显 示 一 朵 云, 用 鼠 标 左 键 点 击 云, 则 云 彩 将 开 始 飘 动, 如 碰 到 窗 体 的 边 界, 云 彩 将 改 变 移 动 方 向; 再 用 鼠 标 左 键 点 击 云, 则 云 将 停 止 移 动。 位 图 文 件cloud.bmp 存 放 在 当 前 工 程 所 在 的 目 录 中。

---- 在 需 显 示 动 画 的 窗 体(Form1) 中 设 置Image 对 象Image1 和Timer 对 象Timer1, 并 按 下 表 设 置 它 们 的 属 性, 未 列 出 的 属 性 使 用 缺 省 值。

.
.
.


---- 注 意, 云 彩 碰 到 边 界 而 反 向 移 动, 是 通 过 改 变DetaX%、 DetaY% 的 符 号 来 实 现 的。
四、 多 帧 位 移 动 画

---- 多 帧 位 移 动 画 是 最 复 杂 的 动 画, 综 合 了 无 位 移 动 画 和 单 帧 位 移 动 画 的 特 点。 自 然 界 的 运 动 大 多 数 都 具 有 多 帧 位 移 的 特 点, 如 小 鸟 的 飞 翔, 在 小 鸟 位 置 的 移 动 的 同 时, 其 翅 膀 也 在 扇 动。 实 现 多 帧 位 移 动 画 需 要 在Timer 事 件 过 程 中 同 时 处 理Image 对 象 的 图 象 更 替 和 位 置 移 动。
---- 下 面 是 小 鸟 飞 翔 的 例 子。 程 序 启 动 时, 在 窗 体 中 显 示 一 只 小 鸟, 用 鼠 标 左 键 点 击 它, 则 小 鸟 将 开 始 扇 翅 飞 翔, 如 碰 到 窗 体 的 边 界, 小 鸟 将 改 变 飞 翔 方 向; 再 用 鼠 标 左 键 点 击 小 鸟, 则 小 鸟 将 停 止 飞 翔。 位 图 文 件bird1.bmp~ bird4.bmp 分 别 表 现 了 小 鸟 飞 翔 时, 其 翅 膀 的 不 同 位 置, 它 们 存 放 在 当 前 工 程 所 在 的 目 录 中。

---- 在 需 显 示 动 画 的 窗 体(Form1) 中 设 置Image 对 象Image1 和Timer 对 象Timer1, 并 按 下 表 设 置 它 们 的 属 性, 未 列 出 的 属 性 使 用 缺 省 值。

.
.
.


五、 缩 放 动 画

---- 气 球 的 膨 胀 或 缩 小 是 缩 放 动 画 的 典 型 例 子。 在Timer 事 件 过 程 中 修 改Image 对 象 的Width 和/ 或Height 属 性, 便 可 实 现 缩 放 动 画。 但 如 果 要 表 现 物 体 的 同 心 缩 放, 则 还 应 同 时 还 需 移 动Image 对 象。
---- 下 面 是 模 拟 气 球 在 空 中 缩 放( 同 心) 的 例 子。 程 序 启 动 时, 在 窗 体 中 显 示 一 只 气 球, 用 鼠 标 左 键 点 击 它, 则 气 球 将 开 始 膨 胀, 如 碰 到 窗 体 的 边 界, 气 球 将 缩 小, 缩 小 到 原 来 大 小 时, 又 将 膨 胀; 再 用 鼠 标 左 键 点 击 气 球, 则 气 球 将 停 止 缩 放。 位 图 文 件Balloon.bmp 存 放 在 当 前 工 程 所 在 的 目 录 中。

---- 在 需 显 示 动 画 的 窗 体(Form1) 中 设 置Image 对 象Image1 和Timer 对 象Timer1, 并 按 下 表 设 置 它 们 的 属 性, 未 列 出 的 属 性 使 用 缺 省 值。

对象
属性
设置值
Image1
Picture
...(工程文件所处路径)\Balloon.bmp
.


命名的技巧 -VB资料 目录所占的字节数-VB资料 VB判断文件是否在IE的缓存中 屏蔽文本框的右键菜单-VB资料 VB取得长文件名 VB取得临时文件名 VB取得某个目录底下所有文件大小总和 VB取得文件的扩展名 VB取得文件内容 确定 TextBox 有几行-VB资料 确定是 WINDOWS 的可执行文件-VB资料 让打印机只打印一行-VB资料 VB如何把批处理文件转换成EXE文件? VB如何调用 Office VB如何将文件删除到回收站 VB如何快速移动文件? VB如何让文本框输入完后,直接跳入下一行? VB如何使用vb取得一个文件的控制权 VB如何使用文件复制对话框? VB如何使用资源文件 VB如何用Dir()函数来列出C下所有TMP文件并且用文本框输出 VB如何在 VB 中使用 Winzip 来压缩文件? VB如何在DOS程序结束执行时,自动将其关闭? VB如何在VB中实现Undo(撤消)功能? VB如何在VB中实现目录遍历 VB如何在Windows操作系统中改变文件打开方式 VB如何知道硬盘是使用那一种文件系統(FAT32,FAT16)? VB如何自动更动成中文输入 VB删除整个目录 VB设置打印页边距 VB实现文件查找功能 有些IE不能瀏覽flash文件﹐請問在哪有下載? 求购时间控件,用去web开发 如何才能按照分类显示视图的内容呢? 同志们 再见 接分! 再发一次,ie版本问题怎么解决,100分 请教:在Rational rose中如何去设计数据库表? 为什么wndows2k pro一访问windows2k server就有"打印机"和"任务计划"的共享,可不可以消除? win2k server下,iis5.0有问题,我想卸载,再重新安装,怎么做? treeview的使用小结(一) INDY 资料! 请分析这段代码,谢谢 怎样获得DataGrid的DataSource? 有关struts的问题,返回页面结果不对!在线等待,以解决就结帖 怎么改变快捷菜单PopupMenu1的颜色? 用OWC组件做柱状图,需要显示不同颜色的柱状以及显示不同颜色的图例 VS.NET中如何让自定义的事件出现在属性编辑器中? javascript 中有没有能返回指定某年某月中总天数的函数 如何将主窗体中的变量传到报表中,以供dataset查询用,急急急!!! 新手探路 不知道这是不是一个bug 函数返回值类型问题 兄弟我现在改行搞传统的邮政商业信函业务!给点建议!来者有分! 装有isa客户端的机器不能用FlashGet或者蚂蚁下载 网路多少钱才要交税? Kingofark关于英语及外语学习的50个观点 adotable定位记录有哪些方法?如何使用? 超高难度求sql语句,非高手莫进,在线等.......... petshop有些代碼不明白。。。。。。。。。。。 哎,运算符重载把我卡住了!求救!!! 最后 请问函数传递,设置默认值问题! 通过ODBC连接INFORMIX的问题!急!急!急! 有没有VC高手想在上海找工作? 求一个发送邮件的例子(急!!) 有谁碰到过多人同时改写几十个xml文件从而导致xml文件混乱的情况? 我在datawindow中设置initial vlaue=0,为什么写到数据库里的值还是null 请问联众和中游客户端的聊天大厅是基于chtmlview还是crichedit编程的? WINDOWS高级用户或技术支持人员请进! 通过ODBC连接INFORMIX的问题!急!急!急! 将数据保存到数据库问题 ???急。。。在线等待。。。 一个动态模板列的问题 请各位兄弟姐妹扔个FontTwister1.3的注册码上来,谢过了。 高分求救:怎么时查询后的记录成高亮状态! jsp中如何得到 select 控件的值??? 初学者求救!!!! NetBSD China站点开通<CSTC团队> 从数据库读出字段类型为int型的数据,如何转换成字符型的? 想用C来做个东西,但不知做什么好 exchange 2003 rc1版安装后后没有M盘?就是没有M盘,还是安装的问题? 关于水晶报表打印的问题,请各路大侠指点迷津 请大家(特别是安逸)指点一下关于pppoe的开发。 Very quietly I leaved, As quietly as I came here, Gently I flick my sleeves,Not even a wisp of clou怎么;理解 啊 !? 奶粉的英文 奶粉用英语怎么写 两只蚂蚁走在路上,看到一个很大的梨,打一国家名称————是什么呢? 什么是自激? gba牧场物语放牧问题所有动物不放牧会有什么损失?怎么样算放牧?把动物拿到房子外面呆多久才算放牧?放牧了有什么改变或者好处?要在下雨天或者下雪天或者大风暴的天到来的前一天把动物 C1 C2 串联=C1+C2 怎么证明 请用大学物理里面推导的公式写错了 是并联 4^n+4^(n-1)C1/n+4^(n-2)C2/n+...+Cn/n=答案是5^n. 决定动物是雄是雌的标准是什么?是生殖器的构造吗? 秉字应查什么部,还可组词___,___. 新疆喀什属高原地带吗? 韩考场现高智能作弊 超小耳麦直径仅2缅甸传奇双胞胎重聚 八岁即建“上帝军西班牙警方出动便衣查黑工 一华人工厂土耳其与北约和美国在地中海举行军演德国破旧公寓发现纳粹藏品 名画估价1列支敦士登王室珍藏亮相国博朴槿惠:日本就历史问题道歉前不与安倍美国中东政策走到十字路口美国称其只在以巴和谈中发挥推动作用“不稳定之弧”挑战全球反恐肯尼亚法官判轮奸犯割草赎罪 超百万人天猫医药并入阿里健康生态哈尼梯田 雕刻山水(美丽中国·秋色迷林志玲和言承旭好像有戏了!强化看齐意识 深学细照笃行五部门联合 将建“号贩子”黑名单创造中华文化新辉煌(深入学习贯彻习近中秋假期 西宝间加开6对动车组方便“微”生活,当心“微”欺骗(法治“穿鞋”上路,更要“光脚”下河(微观举报25类环境违法最高可获千元奖励央视中秋晚会今晚带妆彩排
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘