电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 图形图象-> Authorware教程
制作带有动画和声音的屏幕保护程序_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
利用VB5.0和WINDOWS95自身所带的“画笔”就可以制作出带有动画和声音的屏幕保护程序。画面是一只蝴蝶在音乐的伴奏下飞动,碰动屏幕的边缘就会向小球反弹一样换个方向飞。这里需要两个bmp文件,采用的是VB自带的文件(源文件的位置是c:\programfiles\devstduio\vb\samples\pguide\vcr\bfly1.bmp和bfly2.bmp)。因为蝴蝶要向各个方向飞,所以还要在这两个文件的基础上,再制作两个。打开WINDOWS附件中的“画笔”,打开bfly1.bmp,点取“画像”菜单中的“翻转/旋转”,选择“水平翻转”后,将生成的新文件另存存盘,起名“左飞”,同样的方法将bfly2.bmp另存为“左合”,将bfly1.bmp改名为“右飞”,bfly2.bmp改名为“右合”(左飞,左合是蝴蝶向左飞时的画面,右飞,右合是蝴蝶向右飞时的画面,最后在画笔中将4个图的底色都改为黑色,这是保证蝴蝶的底色和屏幕的背景相融合)。
动画的制作是利用image控件来实现的。改变image的picture属性可实现画面的变化,利用move命令可实现画面的移动。利用MCI控件来实现音乐播放。程序编译后将生成的exe可执行文件,改为以*.scr结尾的文件名,将其复制到windows\system子目录即可,然后就可以在“控制面板”的“显示器”中选择该屏幕保护程序即可使用(运行所带exe文件必须将mid复制到指定的位置。这里建议使用所带的setup进行自动安装,可以省去一切步骤,setup后的文件名为蝴蝶.scr,已自动安装到系统的文件夹,在“显示器”中的“屏幕保护程序”可以找到。重新编译程序所需的4个bmp文件和一个Mid文件也安装到指定的位置。详细路径请见源程序中的说明)。
具体做法如下:首先建立一个新窗体form1,各属性分别是backcolor选为黑色,borderstyle选为0(黑
色不带边框)。在form1上加入7个image控件,在格式菜单中将各个image的大小都选为相同,image1-7的stretch属性都选为true(图像将随控件的大小而变化),image1-6的visible的属性选为false(不可见),
image7的visible属性为true。
Image1.picture=右飞Image2.picture=右合
Image3.picture=左飞Image4.picture=左合
在“工程”菜单中选择“部件”,并从“部件”对话框的“控件”列表中选择“MicrosoftMultimediaControl5.0”加入MCI控件,并将其visible属性改为false。加入时钟控件timer1,其interval属性为200(interval的值与机器的配置有关,在其他机器上可作适当调整,我的配置是P133,内存为32M)。
原理如下:image1-4用来存图形,运行时不可见。Image5用来存蝴蝶翅膀张开时的图像,Image6用来
存蝴蝶翅膀合上时的图像,运行时都不可见。Image7是唯一运行时可见,利用时钟控件来改变其图形,用
Image5和Image6来回变换。
IfImage7.Picture=Image5.PictureThen
Image7.Picture=Image6.Picture
Else
Image7.Picture=Image5.Picture
EndIf
蝴蝶的移动利用image7控件的move方法:
image7.movexp,yp
4个边界值
上边:y=0
下边:y=form1.scaleheight-image7.scaleheight
左边:x=0
右边:x=form1.scalewidth-image7.scalewidth
xp,yp为水平和垂直的移动量。
X,y为image7在窗体中的位置
左右边界的判断:
Ifx>=form1.ScaleWidth-Image1.WidthThen右边界
Image5.Picture=Image3.Picture
蝴蝶应向左飞,翅膀张开的图形应选为左飞
Image6.Picture=Image4.Picture
翅膀合上的图形应选为左合
x=Form1.ScaleHeight-Image1.Width
改变x的位置
xp=(-1)*xp
改变水平的移动量符号,以便向相反方向飞。
EndIf
Ifx<=0Then左边界
Image5.Picture=Image1.Picture右飞
Image6.Picture=Image2.Picture右合
x=0
xp=(-1)*xp
EndIf
Ify>=Form1.ScaleHeight-Image1.HeightThen
下边界
y=Form1.ScaleHeight-Image1.Height
改变y的位置
yp=(-l)*yp
改变垂直的移动量符号,以便向相反方向飞
EndIf
Ify<=0Then上边界
y=0
yp=(-1)*yp
EndIf
声音的播出:这里为播放mid文件
MMControl1.DeviceType=""
MMControl1.Filename="c:\mid\eine.mid"(eine.mid为一mid文件)
MMControl1.Command="open"
MMControl1.Command="play"
这还需利用API函数实现鼠标的隐藏与出现,这里就不一一介绍了。
部分程序代码如下(详细代码及解释请见源文件):
DimxAsInteger
DimyAsInteger
DimxpAsInteger
DimypAsInteger
Dimlastx,lasty
privateSubForm1_KeyDown(KeyCodeAsinteger,ShiftAsInteger)
Endscrnsave结束屏幕保护程序
EndSub
PrivateSubForm1_Load()
Move0,0,Screen.Width,Screen.Height让form1全屏显示
hidemouse隐藏鼠标
x=l000蝴蝶的开始位置
y=l000
xp=80移动量
yp=80
Image5.Picture=Imagel.Picture
确定翅膀张开的图形是“右飞”,蝴蝶向右飞
Image6.Picture=Image2.Picture
确定翅膀合上的图形是“右合”
Image7.Picture=Image1.Picture
MMControl1.Command="close"确保MCI控件已关闭
MMControl1.DeviceType=""
启动程序就播放mid声音文件
MMControl1.filename="c:\mid\eine.mid"
MMControl1.Command="open"
MMControl1.Command="play"
EndSub
PrivateSubForm1_MouseMove(ButtonAsinteger,ShiftAsInteger,xAsSingle,yAsSingle)
IfIsEmpty(lastx)OrIsEmpty(lasty)Then
lastx=x
lasty=y
EndIf
IfAbs(lastx-x)>2OrAbs(lasty-y)>2Then
endscrnsave
EndIf
lastx=x
lasty=y
EndSub
PrivateSubForm1_Unload(CancelAsinteger)
MMControl1.Command="close"
UnloadMe
EndSub
PrivateSubTimer1_Timer()
判断mid文件是否播放完,如果播放完,进行重播
IfMMControl1.Poesition=895Then
些mid文件的长度(mid文件的长度,可建立一Label控件,在时钟控件中令
Lagel1.caption=mmcontrol1.position,就可动态显示播放mid
文件的位置,当mid播放完,就可求出此mid文件的长度。)
MMControl1.Command="prev"
回到此mid文件的开始位置
MMControl1.Command="play"播放
EndIf
x=x xp增加移动量
y=y yp
Ifx>=Form1.ScaleWidth-Image1.WidthThen
右边界判断
Image5.Picture=Image3.Picture换图像
Image6.Picture=Image4.Picture
x=Form1.ScaleHeight-Image1.Width
xp=(-1)*xp改变移动量
EndIf
Ifx<=0Then
Image5.Picture=Image1.Picture
Image6.Picture=Imege2.Picture
x=0
xp=(-1)*xp
EndIf
Ify>=Form1.ScaleHeight-Image1.HeightThen
y=Form1.ScaleHeight-Image1.Height
yp=(-1)*yp
EndIf
Ify<=OThen
y=O
yp=(-1)*yp
EndIf
IfImage7.Picture=Image5.PictureThen
不断改变图象以实现翅膀的一张一合。
Image7.Picture=Image6.Picture
Else
Image7.Picture=Image5.Picture
EndIf
Image7.Movex,y最关键的一步蝴蝶的移动
EndSub
模块中的代码:
DeclareFunctionShowCursorLib"user32"(ByValbSbowAsLong)AsLong
subendscrnsave()结束此程序
showmouse
End
EndSub
Subshowmouse()
WhileShowCursor(True)<0
Wend
EndSub
SubHidemouse()隐藏鼠标
WhileShowCursor(False)>=0
Wend
EndSub
subMain()
IfApp.PrevInstance=TrueThen
ExitSub
EndIf
Form1.Show
EndSub->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·在authorware中灵活运用提示文本_authorware教程
·a016-authorware中checked系统变数的用法_authorware教程
·authorware 6.0 技巧与实例(2)准备工作_authorware教程
·authorware 6.0 技巧与实例(3)移动的标题文字_authorware教程
·authorware 6.0 技巧与实例(5)选择题_authorware教程
·利用authorware动态绘制二次函数曲线图_authorware教程
·authorware 6.0 技巧与实例(4)给电视片配音_authorware教程
·authorware 6.0 技巧与实例(6)自定义按钮_authorware教程
·authorware 6.0 技巧与实例(7)拼图游戏_authorware教程
·authorware 6.0 技巧与实例(9)标准下拉菜单_authorware教程

最新文章
·photoshop通道图层转换黑白照片_photoshop教程
·photoshop设计精美游戏包装盒_photoshop教程
·用photoshop打造水彩风格eva美女凌波丽_photoshop教程
·fireworks滤镜制作喷溅效果_fireworks教程
·fireworks去照片红眼功能使用详解_fireworks教程
·photoshop实例教程:做蓝色水波纹理_photoshop教程
·在windows xp中创建新的iis站点的命令_windows xp
·authorware中自动擦除flash动画_authorware教程
·authorware插入文本的四种方法_authorware教程
·authorware调整动画尺寸_authorware教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号