科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用VB编写FLASH动画播放器

用VB编写FLASH动画播放器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Flash4是MacroMedia公司出品的矢量动画创作专业软件,利用该软件制作的矢量动画具有文件体积小、带音效和兼容性好等特点....

作者:佚名 来源:yesky 2007年10月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
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。
  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()
  将画面质量设置为高分辨率
  Form2!ShockwaveFlash1.Quality = 1
  mnuQuality0.Checked = False
  mnuQuality1.Checked = True
  End Sub
  Private Sub mnuZoomIn_Click()
  放大画面。
  Form2!ShockwaveFlash1.Zoom (50)
  End Sub
  Private Sub mnuZoomOut_Click()
  缩小画面。
  Form2!ShockwaveFlash1.Zoom (200)
  End Sub
  Private Sub Form_Unload(Cancel As Integer)
  End 结束程序
  End Sub

  第二步:在Form2的代码窗口中添加以下代码:

  Private Sub Form_Resize()
  将ShockwaveFlash1控件的大小设置为Form2的大小。
  ShockwaveFlash1.Top = Form2.ScaleTop
  ShockwaveFlash1.Left = Form2.ScaleLeft
  ShockwaveFlash1.Width = Form2.ScaleWidth
  ShockwaveFlash1.Height = Form2.ScaleHeight
  End Sub
  Private Sub Timer1_Timer()
  在状态栏和滑动条上显示当前播放的帧。
  Form1!StatusBar1.Panels(5).Text = Str(ShockwaveFlash1.FrameNum)
  Form1!Slider1.Value = ShockwaveFlash1.FrameNum
  End Sub

  第三步:调试、运行程序,运行界面如图2所示。

  当播放Flash动画时,在播放窗口中单击鼠标右键时,将会弹出如图3所示的菜单。在该菜单,我们可以完成控制Flash动画播放的大部份工作。若想取消该功能,只要将Shockwave flash控件的Menu属性设置为False即可。

  以上程序在Windows98,VB6.0下运行通过。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章