winform中嵌入flash(EmbedMovie属性)

问题描述

用winform加载FLASH,然后想让FLASH以winform为容器,储存在里面,用过EmbedMovie属性,内嵌但是却没有任何效果?请问是怎么回事??

解决方案

解决方案二:
要在c#winform程序里嵌入FLASH,其实就是直接引用Flash的ocx控件。那你就需要使用“COM组件”ShockwaveFlashObject。不过这个"Flash.ocx"控件不能直接在“COM组件”窗口中找到.。需要我们手动添加,选择菜单中的“工具”--“自定义工具箱”,打开“自定义工具箱”窗口,在“COM组件”中点击“浏览”键,然后选择“c:WINNT(WINDOWS)system32MacromedFlashswflash.ocx"控件,确定后在工具箱中就可以看到“FlashFactory”,“ShockwaveFlash”两个新控件添加控件注意我使用的是“xp系统”和FLASH8与flash9都有安装,ShockwaveFlash就是在“C:WINDOWSsystem32MacromedFlash”目录下面(我使用的“Flash9d.ocx”)当你发现你的ShockwaveFlash程序提示你“没有注册”,那你可能缺少了“MicrosoftMultimediaControl,version6.0”控件,可以先添加这个控件到“工具箱”中。这个控件在“C:WINDOWSsystem32MCI32.OCX”,如果没有可以通过百度上网下载一个,我在本机没有找到,就在网上下载了该文件。那我们现在就镶嵌一个FLASH到程序中Movie:flash的存放地址EmbedMovie:是否嵌入到程序的资源中。在InitializeComponent();控件都加载完成后,FlashBox_UI.Movie=Application.StartupPath+"\flashplayer.swf";连接嵌入的SWF文件Form1.cs文件如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceflashShell2{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();FlashBox_UI.Movie=Application.StartupPath+"\flashplayer.swf";}}}---------------------------------flashc#通讯--------------------------------------在Flash的ActionScript中,可以通过FSCommand函数与hostingapp通信,该函数有两个参数,分别是:command:命令名称parameters:参数例子:on(press){fscommand("Circule","Green");}在C#中,处理flash对象的FSCommand事件即可。如果该事件处理函数的EventArgs为e,则有如下对应关系:e.command->flash中调用FSCommand时的command参数;e.args->flash中调用FSCommand时的arguments参数。在C#中往Flash传递数值用SetVariable方法:axShockwaveFlash1.SetVariable("variablename","valueasstring");对应的,有一个GetVariable方法可以获得flash中的变量值。FSCommand的参数只能传递一个,所以其功能存在一定的局限性。在你需要传递多个参数的时候,则需要在调用方用字符串拼接各个参数值,然后在被调用方重新解开。这种办法使得复杂的传值显得很丑陋。不过,除了FSCommand外,我们还有另一种办法和flash通信,就是使用FlashPlayer8ExternalAPI.(http://www.codeproject.com/cs/media/flashexternalapi.asp)使用ExternalAPI,可以实现ActionScript和C#的双向调用。其好处就在于每次调用时的参数和返回值都通过一个xml文档来传递,这样就比FSCommand功能完善了很多。当然在C#中,我们也需要声明一下外部函数实现的对应关系。代码片段:FlashActionScript中声明提供给hostingapplication调用的回调函数:importflash.external.ExternalInterface;ExternalInterface.addCallback("loadAndPlayVideo",null,loadAndPlayVideo);C#中调用Flash的情形:flashPlayer.CallFunction("<invoke"+"name="loadAndPlayVideo"returntype="xml"><arguments><string>"+fileDialog.FileName+"</string></arguments></invoke>");在ActionScript中调用C#函数:ExternalInterface.call("ResizePlayer",videoPlayer.metadata.width,videoPlayer.metadata.height);在C#中声明被Flash调用的函数:flashPlayer.FlashCall+=new_IShockwaveFlashEvents_FlashCallEventHandler(flashPlayer_FlashCall);在此,我们可以看到C#和Flash进行通信还是相当方便的。除此之外,我顺便搜索到其他一些和flash有关的不错的文章:Flashand.NETwithFlashRemotinghttp://www.codeproject.com/aspnet/FlashRemoting.aspMultipleFileUploadWithProgressBarUsingFlashandASP.NEThttp://www.codeproject.com/aspnet/FlashUpload.aspFlashGUIforyourexeusingminimalisticapproach(C++)http://www.codeproject.com/useritems/FlashGui.aspC#中的回调函数axShockwaveFlash.FlashCall+=new_IShockwaveFlashEvents_FlashCallEventHandler(SetNum);publicvoidSetNum(objectsender,_IShockwaveFlashEvents_FlashCallEvente){//得到参数列表ArrayListparaList=GetParaList(e.request);}publicArrayListGetParaList(stringParaListXml){XmlDocumentdoc=newXmlDocument();doc.LoadXml(ParaListXml);XmlNodeListpareNodeList=doc.GetElementsByTagName("string");ArrayListparaList=newArrayList();foreach(XmlNodenodeinpareNodeList){paraList.Add(node.InnerText);}returnparaList;}------------------------------------------------------------------------------------------------http://www.jiemengwu.com/http://www.phpzy.com/php/http://www.shopfw.comhttp://www.jqk8.com
解决方案三:
关于如何使用FLASH控件我是清楚的.只是关于内嵌FLASH于winform不知下手EmbedMovie属性的解释:语法:EmbedMovieAsBoolean  说明:影片是否被存贮到控件所在的容器中。当你已载入一个影片后将该属性设为True,播放影片时就不必再去读SWF文件了。这使得在PowerPoint简报或VB程序里使用Flash影片更容易。但将该属性设为True后,控件的Movie属性就不再接受新的值了。要想播放另一个影片(给Movie属性赋新值),必须先将EmbedMovie属性设为False。将EmbedMovie设为true值,还是要读取外部flash

时间: 2024-09-23 11:07:34

winform中嵌入flash(EmbedMovie属性)的相关文章

在HTML代码中嵌入Flash文件的解决方案!(下)

关于我的SWFObject V1.5的使用过程,以上篇中的介绍暂时告一段落了,下面我将会带领SWFObject V2.1出场与大家见面,如果我早一点结识V2.1的话,或许就不会受到"等待HTML DOM加载"问题的侵扰了. 首先,给大家简要介绍一下V2.1语法的调用示例: <script type="text/javascript" src="swfobject.js"></script><script type=&

利用COM晚期绑定技术,实现Winform中播放Flash的功能

小孩正处学习新事物的阶段,每天拿着很多卡片来识字识物,甚是有趣.有一天,我突发奇想,如果能用电脑动画来播放一些动画片段来帮助小孩提高记忆,那倒是不错的想法.动画最近肯定是使用Flash来处理了,快捷并且声色俱全,可以提高学习的兴趣.于是着手在Winfrom中嵌入Flash来播放,实现动画的效果,经过一番努力,终于成型,先看看程序的效果.   这个程序和一般操作方式不同,不是直接应用Fash的COM组件进行操作,而是通过接口的晚期绑定来实现对Flash的调用,因此项目工程没有Flash的COM组件

WinForm中嵌入WebBrowser,并且支持C#和JS方法的相互调用

纯粹WinForm界面不够友好,实现数据复杂度高的处理有些力不从心,所以看了看api以后决定用html来做. 我的wlw的代码插件不是很好用,大家凑合看吧  类前说明引用和权限 1: [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 2: [System.Runtime.InteropServices.ComVisibleAttribute(true)] 添加C#可调用方法 1: public string winfo

网页中嵌入 Flash 的方法讨论

网页 Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等.讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了. 一.传统的方法.<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"    codebase="http://fpdownload.macromedia.com/pub/shockwave

技巧文章:网页中嵌入Flash的方法讨论

技巧|网页 Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等.讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了. 一.传统的方法 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"     codebase="http://fpdownload.macromedia.com/pub/shock

网页中嵌入Flash的方法讨论_Flash教程

Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等.讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了. 一.传统的方法 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"    codebase="http://fpdownload.macromedia.com/pub/shockwave/ca

在WEB标准中嵌入Flash 的最佳方法

Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等.讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了. 一.传统的方法.<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"    codebase="http://fpdownload.macromedia.com/pub/shockwave/ca

在HTML代码中嵌入Flash文件的解决方案!(上)

这几天恰逢公司网站首页需要改版,去年底公司"人员精简"后,一个人得做多个人的活,忽然之间发觉担子重了.这不,本不是我工作范围内的事情,不幸也让我参与其中了,不幸中的幸事是这次BOSS交给我的任务,恰是我一直热衷的前端开发任务.之前一直从事公司网站的后台管理程序开发,更多是在服务器端处理业务逻辑,一直没有机会在我热衷的前端开发上施展拳脚.实践是检验真知的最好途径,通过解决分派给我的实际任务正是一次难得的大检验,通过书本和各种资料学习许多零散的知识,却未得机会将他们揉合在一起来次"

如何在C# winform中嵌入word文档

问题描述 我需要在winform中显示word文档,并能对文档进行操作,例如(修改,保存),也就是能用代码直接对文档进行操作.请不要说用这样的代码:Word.ApplicationClassword=newWord.ApplicationClass();或Word.Applicationword=newWord.Application();这样确实能对word文档进行操作,但是它弹出独立的word界面.最好能给个例子. 解决方案 解决方案二:使用WebBrowser控件载入word文档word和