WPF中播放Flash动画
      1、首先在VS2010中建立项目。打开VS2010后选择文件-新建-项目,选择WPF应用程序,如下图所示,项目名称为WpfFlashPlayer
    2、选中项目解决方案名称,点右键,选择添加“新建项目,出现下图窗口。选择flash swf播放器Windows窗体控件库,名称定为WindowsFormsFlashControlLibrary,点确定键。 
      3、在工具箱中选择Shockwave Flash Object,如果工具箱中没有出现,只要在工具箱中点右键选择选择项,就会出现图1-99,选择其中的Shockwave Flash Object”后点确定键。这时工具箱中会增加Shockwave Flash Object控件,将其拖入设计窗口。
1-99
    4、开始执行程序,在项目WindowsFormsFlashControlLibrary”的Bin\Debug”文件夹中自动生成:
    AxInterop.ShockwaveFlashObjects.dllInterop.ShockwaveFlashObjects.dll
    2个文件是Windows系统下Flash Player播放器控件在WPF中应用的接口,有了这两个文件,他人就无需做上面的重复设计了,可以在下面使用。
    5、然后在Expression Blend 4中建立1WPF项目,如WpfFlashPlayer
    首先在项目的“引用”中添加下面2个文件的引用(可到上面说的文件夹中此文件):
    AxInterop.ShockwaveFlashObjects.dll
    Interop.ShockwaveFlashObjects.dll
    并且在.xaml.cs文件前添加命名空间:
    using AxShockwaveFlashObjects;
    using ShockwaveFlashObjects;
    这时,项目中可以使用Flash Player的类AxShockwaveFlash创建播放器对象,此对象在WPF窗口的显示同样需要借助于接口控件WindowsFormsHost,这样需要在项目的引用中添加如下文件:
    System.Windows.Forms.dllC:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
   WindowsFormsIntegration.dllC:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\WPF
    1个引用的添加将保证AxShockwaveFlash的正常应用。后1个引用的添加,资产栏目中就出现WindowsFormsHost控件了。
    因为要播放视频,允许从当前磁盘中选择,需要使用打开文件对话框,后面的程序中使用到定时器,所以需要添加命名空间引用:
    using Microsoft.Win32;//for OpenFileDialog
    以上是设计的准备工作,已经完成,下面进行界面设计。
    从“资产”栏目中到WindowsFormsHost控件,拖入MainWindow窗口,命名为wfh,调整其大小合适播放Flash动画。放入1个按钮“选择SWF文件”(button):
    //选择SWF文件(程序注解参照前面的“选择WMV文件”)
    private void button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            OpenFileDialog openfile = new OpenFileDialog();
            openfile.Filter = "选择SWF文件|*.swf";
            openfile.Title = "选择SWF文件";
            if (openfile.ShowDialog() == true)
            {
                if (openfile.FileName != "")
                {
                    FlashPlayer.Movie=openfile.FileName;                 
                }
            }
        }
    //Windows启动时播放指定的Flash动画
    private void Window_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            // FlashPlayer作为wfh的子对象
            wfh.Child = FlashPlayer;
            //获取动画文件路径定位,System.Environment.CurrentDirectory指向项目的Debug文件
            string swff=System.Environment.CurrentDirectory+@"\shufa.swf";
            //作为播放器的播放文件
            FlashPlayer.Movie=swff;
            //窗口标题显示Flash Player的版本
            this.Window.Title="WPF中嵌入Flash Player"+FlashPlayer.ProductVersion;
        }

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