加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

WPF中播放Flash动画

发布时间:2020-12-15 18:40:24 所属栏目:百科 来源:网络整理
导读:WPF 本身不直接支持播放 Flash 动画,需要做点 “ 设计 ” ,下面是示例(嵌入 WPF 窗口播放)。 1 、首先在 VS2010 中建立项目。打开 VS2010 后选择 “ 文件 ”-“ 新建 ”-“ 项目 ” ,选择 “WPF 应用程序 ” ,如下图所示,项目名称为 WpfFlashPlayer

WPF本身不直接支持播放Flash动画,需要做点设计,下面是示例(嵌入WPF窗口播放)。

1、首先在VS2010中建立项目。打开VS2010后选择文件”-“新建”-“项目,选择“WPF应用程序,如下图所示,项目名称为WpfFlashPlayer ?

??? 2、选中项目解决方案名称,点右键,选择添加”—“新建项目,出现下图窗口。选择“Windows窗体控件库,名称定为WindowsFormsFlashControlLibrary,点确定键。?

????? 3、在工具箱中选择Shockwave Flash Object,如果工具箱中没有出现,只要在工具箱中点右键选择选择项,就会出现图1-99,选择其中的“Shockwave Flash Object”后点确定键。这时工具箱中会增加Shockwave Flash Object控件,将其拖入设计窗口。

1-99

??? 4、开始执行程序,在项目“WindowsFormsFlashControlLibrary”“BinDebug”文件夹中自动生成:??? 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:WINDOWSMicrosoft.NETFrameworkv4.0.30319

? ? WindowsFormsIntegration.dllC:WINDOWSMicrosoft.NETFrameworkv4.0.30319WPF

??? 1个引用的添加将保证AxShockwaveFlash的正常应用。后1个引用的添加,资产栏目中就出现WindowsFormsHost控件了。

??? 因为要播放视频,允许从当前磁盘中选择,需要使用打开文件对话框,后面的程序中使用到定时器,所以需要添加命名空间引用:

??? using Microsoft.Win32;//for OpenFileDialog

??? 以上是设计的准备工作,已经完成,下面进行界面设计。

??? 从“资产”栏目中找到WindowsFormsHost控件,拖入MainWindow窗口,命名为wfh,调整其大小合适播放Flash动画。放入1个按钮“选择SWF文件”(button):

??? //选择SWF文件(程序注解参照前面的“选择WMV文件”)

????

 
 
  1. private?void?button_Click(object?sender,?System.Windows.RoutedEventArgs?e) ?
  2. ?
  3. ????????{ ?
  4. ?
  5. ???????????OpenFileDialog?openfile?=?new?OpenFileDialog(); ?
  6. ?
  7. ???????????openfile.Filter?=?"选择SWF文件|*.swf"; ?
  8. ?
  9. ???????????openfile.Title?=?"选择SWF文件"; ?
  10. ?
  11. ???????????if?(openfile.ShowDialog()?==?true) ?
  12. ?
  13. ???????????{ ?
  14. ?
  15. ???????????????if?(openfile.FileName?!=?"") ?
  16. ?
  17. ???????????????{ ?
  18. ?
  19. ???????????????????FlashPlayer.Movie=openfile.FileName;?????????????????? ?
  20. ?
  21. ???????????????} ?
  22. ?
  23. ???????????} ?
  24. ?
  25. ???????} ?
  26. ?
  27. ????//Windows启动时播放指定的Flash动画 ?
  28. ?
  29. ????private?void?Window_Loaded(object?sender,?System.Windows.RoutedEventArgs?e) ?
  30. ?
  31. ????????{ ?
  32. ?
  33. ???????????//?FlashPlayer作为wfh的子对象 ?
  34. ?
  35. ???????????wfh.Child?=?FlashPlayer; ?
  36. ?
  37. ???????????//获取动画文件路径定位,System.Environment.CurrentDirectory指向项目的Debug文件 ?
  38. ?
  39. ???????????string?swff=System.Environment.CurrentDirectory+@"shufa.swf"; ?
  40. ?
  41. ???????????//作为播放器的播放文件 ?
  42. ?
  43. ???????????FlashPlayer.Movie=swff; ?
  44. ?
  45. ???????????//窗口标题显示Flash?Player的版本 ?
  46. ?
  47. ???????????this.Window.Title="WPF中嵌入Flash?Player:"+FlashPlayer.ProductVersion; ?
  48. ?
  49. ????????} ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读