11.3.2 播放Flash动画
播放Flash动画主要有两种实现方式,一种是使用控件播放,另一种是使用CShockwaveFlash类动态创建窗体播放。
注意:
如果是在对话框窗体上动态创建,那么这个对话框窗体中是不能有其他控件的。
在使用Flash控件前首先应将其添加到工程中,然后在程序中使用。其添加方法同添加CAnimation控件的方法基本相同。添加Flash控件的方法
如下。
(1)单击菜单栏中的“Project”→“Add to Project”→“Components and Controls”命令,打开Components and Controls Gallery窗口。
(2)在该窗口中通过双击打开Registered ActiveX Controls文件夹。
(3)在该窗口中的列表框中选择Shockwave Flash Object文件,如图11.13所示。
(4)单击Insert按钮,打开Confirm Classes 窗口,如图11.14所示。
图11.13 选择文件Shockwave Flash Object

图11.14 Confirm Classes 对话框
(5)通过Confirm Classes 窗口可以向程序中添加控件所对应的类文件,Flash控件对应着CShockwaveFlash类。
(6)单击OK按钮,Microsoft Visual C++(www.cppentry.com)就会把Flash控件、CShockwaveFlash类所对应的头文件和实现文件一同加入到工程中。
(7)Flash控件被添加到工程中的控件面板中,如图11.15所示。

CShockwaveFlash类的主要成员函数如表11.17所示。
表11.17 CShockwaveFlash类的主要成员函数
成 员 函 数 描 述
LoadMovie 加载Flash文件
Play 开始播放
Stop 停止播放
GetTotalFrames Flash 文件的共有帧数
CurrentFrame 播放Flash文件的当前帧
StopPlay 暂停播放
EnableCompactMode 紧凑模式显示
EnableFullScreenMode 全屏模式显示
下面通过实例介绍如何用Flash控件制作播放器。
例如:
ch1108实例位置:mr\11\sl\08
播放Flash动画的程序设计步骤如下:
(1)创建一个基于对话框的应用程序。
(2)向对话框中添加两个静态文本框和5个按钮,将Flash控件添加到对话框中,ID为IDC_SHOCKWAVEFLASH1,并添加成员变量为m_shoc。
(3)编写“打开”按钮的代码如下:
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,"flash文件|*.swf||"); if(dlg.DoModal()==IDOK){ strname=dlg.GetPathName(); } if(strname!="") { m_shoc.LoadMovie(0,strname); m_shoc.Play(); long i=m_shoc.GetTotalFrames(); CString edit; edit.Format("%d",i); GetDlgItem(IDC_STATIC1)->SetWindowText(edit); }
|
(4)编辑“暂停”按钮的代码如下:
CString text; GetDlgItem(IDC_BUTTON2)->GetWindowText(text); if(text=="暂停") { m_shoc.StopPlay(); GetDlgItem(IDC_BUTTON2)->SetWindowText("播放"); } else { m_shoc.Play(); GetDlgItem(IDC_BUTTON2)->SetWindowText("暂停"); }
|
(5)编辑“前进”按钮的代码如下:
long cf=m_shoc.CurrentFrame(); m_shoc.StopPlay(); m_shoc.SetFrameNum(cf+10); m_shoc.Play();
|
(6)程序运行效果如图11.16所示。

【责任编辑:
阚书 TEL:(010)68476606】