用VB把flash做成.scr屏保文件
      Flash4是MacroMedia公司出品的矢量动画创作专业软件,利用该软件制作的矢量动画具有文件体积小、带音效和兼容性好等特点。那么,你想不想在自己编写的程序中加入Flash动画,为自己的程序添加一道亮丽的彩呢? 
    一、编程原理 
    本程序利用了Flash4本身自带播放Flash动画的控件。你可以通过以下途径获得该控件:1、安装Flash4;2、安装Windows98自带的Flash插件,方法:依次单击“开始”菜单-“设置”-“控制面板”-“添加/删除程序”-“Windows  安装程序”-“多媒体”-“详细资料”-选中“Macromedia  Shockwave  Flash”前的复选框确定即可。以上方法都会将该控件安装到Windows目录下的System\Macromed\Flash子目录下。 
    二、示例程序 
    下面就是一个用控件编写的Flash动画播放器。本程序可一次打开多个Flash动画文件,并可在播放过程中选择播放打开的文件、随时改变播放质量、画面大小等状态;在播放过程中可以随时对播放的当前帧数进行调整或者手动进行逐帧播放,在状态栏里有当前播放状态的相关说明。在实现以上功能时,几乎用全了控件的主要属性、方法。
 
    编程过程如下: 
    1、窗体、界面设计。 
    新建工程,选择“工程”菜单下的“部件”命令,在“部件”窗口的“控件”列表中将“Shockwave  flash”、“Microsoft  Common  Dialog  Control  6.0  (SP3)”、“Microsoft  Windows  Common  Control  6.0  (SP3)”前的复选框选中,然后确定。再在窗体中分别加入1个CommonDialog控件、1个Slider控件、3个Label控件、6个CommandButton控件和1个Status  Bar控件。其中: 
    将Form1的“Caption”属性设置为:Flash动画播放器。这是控制窗口。 
    将CommonDialog1的CancelError设置为True,DialogTitle设置为“打开Flash动画文件”,Filter属性设置为“Flash动画(*.swf)|*.swf|”,FilterIndex设置为1,MaxFileSize设置为10240。 
    将Slider1的SelectRanger的属性设置为“True”,SmallChange属性和LargeChange属性设置为10,TickFrequengcy属性设置为20,TextPosition设置为“1  -  SldBelowRight”。 
    将Label(1-3)分别放在Slider1下的左端、中间和右端。其中,Label1的Caption设置为“
0帧”,Label2和Label3的Caption设置为空字符串。 
    6个CommandButton的“名称”属性分别为:cmdOpen、cmdPlay、cmdPause、cmdPre、cmdPreFrame、cmdNextFrame、cmdNext、cmdExit,“Caption”属性分别为:打开、播放、暂停、上一个、上一帧、下一帧、下一个、退出。 
    在Status  Bar上单击鼠标右键,选择“属性”,从弹出的窗口中选择“窗格”页面,用鼠标点击“插入窗格”5次,在索引1-5中分别设置“文本”属性为:“共打开了0个文件”、“状态:”、“等待”、“帧数:”、“0”,再适当设置每一项的“最小宽度”的属性(可参考图1中的比例)。 
      进入菜单编辑器(按快捷键Ctrl+E)。设置第一个菜单标题为“显示控制”,名称为:mnuDisplay;在“显示控制”下设立子菜单标题分别为“全部显示”、“随窗口大小变化”、“缩放至窗口大小”,名称分别为:mnuDisplay0、mnuDisplay1、mnuDisplay2。设置第二个菜单标题为“质量控制”,名称为:mnuQuality;在“质量控制”下设立子菜单标题分别为“低分辨率”、“高分辨率”,名称分别为:mnuQuality0、mnuQuality1。设置第三个菜单标题为“播放控制”,名称为:mnuPlayControl;在“播放控制”下设立子菜单标题分别为“循环播放”、“放大画面”、“缩小画面”,名称分别为:mnuLoopPlay、mnuZoomIn、mnuZoomOut。 
    选择“工程”菜单下的“添加窗体”命令,新增一个窗体Form2作为播放窗口。在Form2上加入1个ShockwaveFlash控件和1个Timer控件。将Timer1控件的“Interval”属性设置为“20”。 
    最后,对各窗体、控件的大小、位置进行适当的调整,其大小、位置可参考图1。 
    2、程序代码 
    第一步:在Form1的代码窗口中添加以下代码: 
    Dim  FileNames()  As  String  注释:用于保存打开的文件名称。 
    Dim  PlayFileNum  As  Integer  注释:用于计算正在播放的文件序号。 
    Dim  TotalFile  As  Integer  注释:用于统计打开的文件总数。 
    Private  Sub  cmdOpen_Click()  注释:打开 
    On  Error  GoTo  ExitOpen 
    CommonDialog1.Flags  =  cdlOFNAllowMultiselect  Or  cdlOFNFileMustExist  Or  cdlOFNExplorer 
    CommonDialog1.FileName  =  ″" 
    CommonDialog1.ShowOpen  注释:显示“打开”对话框。 
    注释:以vbNullChar作为子字符串的边界分隔字符串CommonDialog1返回的FileName。
  flash控件怎么下载
    FileNames()  =  Split(CommonDialog1.FileName,  vbNullChar) 
    If  UBound(FileNames)  =  0  Then  注释:用户只打开了一个文件。 
    Form2!ShockwaveFlash1.Movie  =  FileNames(0) 
    TotalFile  =  1 
    PlayFileNum  =  0 
    Else  注释:用户打开了多于一个文件。 
    Form2!ShockwaveFlash1.Movie  =  FileNames(0)  +  ″\″  +  FileNames(1) 
    TotalFile  =  UBound(FileNames) 
    PlayFileNum  =  1 
    End  If 
    StatusBar1.Panels(1).Text  =  ″共打开了″  +  Trim(Str(TotalFile))  +  ″个文件″ 
    cmdPlay_Click 
    ExitOpen: 
    End  Sub 
    Private  Sub  cmdPlay_Click()  注释:开始播放 
    If  TotalFile  <  1  Then  Exit  Sub  注释:用户还没有打开文件。 
    注释:显示Form2开始播放动画。 
    Form2.Caption  =  FileNames(PlayFileNum)  +  ″  -  Flash动画播放器″ 
    Form2.Show 
    Form2!ShockwaveFlash1.Playing  =  True 
    If  TotalFile  =  1  Then  PlayFileNum  =  0 
    注释:显示状态条的信息。 
    StatusBar1.Panels(3).Text  =  ″正在播放文件:″  +  FileNames(PlayFileNum)  +  ″  ...″ 
    注释:显示滑动条的状态。 
    Slider1.Max  =  Form2!ShockwaveFlash1.TotalFrames 
    Label2.Caption  =  Str(Slider1.Max  /  2)  +  ″帧″ 
    Label3.Caption  =  Str(Slider1.Max)  +  ″帧″ 
    End  Sub 
    Private  Sub  cmdPause_Click()  注释:暂停播放 
    Form2!ShockwaveFlash1.Stop 
    End  Sub 
    Private  Sub  cmdPre_Click()  注释:播放上一个文件 
    If  TotalFile  <>  1  Then  注释:当用户打开多于一个文件时 
    PlayFileNum  =  PlayFileNum  -  1 
    If  PlayFileNum  <  1  Then  PlayFileNum  =  TotalFile 
    Form2!ShockwaveFlash1.Movie  =  FileNames(0)  +  ″\″  +  FileNames(PlayFileNum) 
    End  If 
    注释:显示播放状态的信息。 
    StatusBar1.Panels(3).Text  =  ″正在播放文件:″  +  FileNames(PlayFileNum)  +  ″  ...″ 
    Slider1.Max  =  Form2!ShockwaveFlash1.TotalFrames 
    Form2.Caption  =  FileNames(PlayFileNum)  +  ″  -  Flash动画播放器″ 
    Label2.Caption  =  Str(Slider1.Max  /  2)  +  ″帧″ 
    Label3.Caption  =  Str(Slider1.Max)  +  ″帧″ 
    End  Sub 
    Private  Sub  cmdNext_Click()  注释:播放下一个文件 
    If  TotalFile  <>  1  Then  注释:用户打开多于一个文件时 
    PlayFileNum  =  PlayFileNum  +  1 
    If  PlayFileNum>TotalFile  Then  PlayFileNum  =  1 
    Form2!ShockwaveFlash1.Movie  =  FileNames(0)  +  ″\″  +  FileNames(PlayFileNum) 
    End  If 
    注释:显示播放状态的信息。 
    StatusBar1.Panels(3).Text  =  ″正在播放文件:″  +  FileNames(PlayFileNum)  +  ″  ...″ 
    Slider1.Max  =  Form2!ShockwaveFlash1.TotalFrames 
    Form2.Caption  =  FileNames(PlayFileNum)  +  ″  -  Flash动画播放器″ 
    Label2.Caption  =  Str(Slider1.Max  /  2)  +  ″帧″ 
    Label3.Caption  =  Str(Slider1.Max)  +  ″帧″ 
    End  Sub 
    Private  Sub  cmdPreFrame_Click()  注释:跳到动画的上一帧 
    Form2!ShockwaveFlash1.Back 
    End  Sub 
    Private  Sub  cmdNextFrame_Click()  注释:跳到动画的下一帧 
    Form2!ShockwaveFlash1.Forward 
    End  Sub   
    Private  Sub  cmdExit_Click()  注释:退出程序 
    End 
    End  Sub 
    Private  Sub  Slider1_Scroll() 
    注释:当用户拖动滑动条时,将播放帧数设置为滑动条中的值。 
    Form2!ShockwaveFlash1.FrameNum  =  Slider1.Value 
    End  Sub 
    Private  Sub  mnuDisplay0_Click() 
    注释:将画面大小设置为在控件内保持动画原来比例全部显示 
    Form2!ShockwaveFlash1.ScaleMode  =  0 
    mnuDisplay0.Checked  =  True 
    mnuDisplay1.Checked  =  False 
    mnuDisplay2.Checked  =  False 
    End  Sub 
    Private  Sub  mnuDisplay1_Click() 
    注释:将画面的缩放设置为随控件横向(或纵向)的缩放而变化 
    Form2!ShockwaveFlash1.ScaleMode  =  1 
    mnuDisplay0.Checked  =  False 
    mnuDisplay1.Checked  =  True 
    mnuDisplay2.Checked  =  False 
    End  Sub 
    Private  Sub  mnuDisplay2_Click() 
    注释:将画面大小设置为不理会动画原来比例缩放至控件大小 
    Form2!ShockwaveFlash1.ScaleMode  =  2 
    mnuDisplay0.Checked  =  False 
    mnuDisplay1.Checked  =  False 
    mnuDisplay2.Checked  =  True 
    End  Sub 
    Private  Sub  mnuLoopPlay_Click() 
    注释:将播放方式设置为循环或不循环。 
    mnuLoopPlay.Checked  =  Not  mnuLoopPlay.Checked 
    Form2!ShockwaveFlash1.Loop  =  Not  Form2!ShockwaveFlash1.Loop 
    End  Sub 
    Private  Sub  mnuQuality0_Click() 
    注释:将画面质量设置为低分辨率 
    Form2!ShockwaveFlash1.Quality  =  0 
    mnuQuality0.Checked  =  True 
    mnuQuality1.Checked  =  False 
    End  Sub   
    Private  Sub  mnuQuality1_Click()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。