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

在WPF中嵌入Flash(或Flex程序)

发布时间:2020-12-15 18:20:38 所属栏目:百科 来源:网络整理
导读:在最近的一个WPF应用中,有这样一个需求:WPF本身生成数据,然后调用Flex编译生成的Flash完成数据的树形结构可视化显示。这就需要在WPF中嵌入Flash,下面详细介绍一下具体的做法。 开发环境:Win7+Visual Studio 2010+ Adobe Flash Builder 4.6 1. 向WPF项目

在最近的一个WPF应用中,有这样一个需求:WPF本身生成数据,然后调用Flex编译生成的Flash完成数据的树形结构可视化显示。这就需要在WPF中嵌入Flash,下面详细介绍一下具体的做法。

开发环境:Win7+Visual Studio 2010+ Adobe Flash Builder 4.6

1. 向WPF项目中添加Shockwave Flash Object,在菜单中选择 工具(T)->选择工具箱项(X),然后选中COM组件选项卡,从中选取Shockwave Flash Object,点击确定完成添加

? ? ? ? ? ? ? ? ? ??


说明:在这一步可能出现COM组件选项卡中并没有Shockwave Flash Object选项的情况,这说明系统中还没有安装或注册Flash插件,可以到%windir%System32MacromedFlash目录下查看是否存在后缀为.ocx的flash插件。如果没有安装Flash插件,需要用IE打开http://get.adobe.com/flashplayer/来获取并安装最新的Flash ActiveX插件。

2. 在WPF项目的设计界面,向主窗体MainWindow.xaml上添加控件WindowsFormsHost,用来容纳Shockwave Flash Object。

? ? ? ? ? ? ? ? ? ??


3. 创建用于Windows窗体的用户控件(User Control),并向FlashControl中拖曳添加Shockwave Flash Object(WPF Application 作为一个展现层的项目,不能自身插入 COM Component,所以需要借助Windows Form引入ActiveX控件)。添加一个Shockwave Flash Object 后会自动在FlashControl中增加一个AxShockwaveFlashObjects.AxShockwaveFlash对象。

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ??


4. 在MainWindow的Window_Loaded方法中创建AxShockwaveFlashObjects.AxShockwaveFlash对象并添加到WindowsFormsHost容器中,代码如下:

? ??

AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlashObjects.AxShockwaveFlash();
windowsFormsHost1.Child = axShockwaveFlash;
string swfPath = System.Environment.CurrentDirectory;
swfPath += @"demo.swf";
axShockwaveFlash.Movie = swfPath; //指定播放的flash文件路径
axShockwaveFlash.FlashCall += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEventHandler(axShockwaveFlash_FlashCall);//添加flash调用处理方法,让WPF可以处理来自Flash的调用请求

5. 运行程序,可以看到WPF中成功嵌入了Flash,如下图所示:

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ?

通过上述方法可以简单地实现在WPF中播放Flash,对于Flex程序,可能还会要求Flash和WPF主程序进行互相通信传递消息,这时可以通过Flex的ExternalInterface类与容器应用程序进行通信。

(编辑:李大同)

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

    推荐文章
      热点阅读