文档详情

使用Flash及CWinForm配合打造界面漂亮的应用程序.doc

发布:2017-03-14约字共13页下载文档
文本预览下载声明
使用Flash和C# WinForm配合打造界面漂亮的应用程序 网窝网版权所有!这里可以修改成你网站的信息 由于之前一阵公司一个项目提出的需求,自己也想进行这方面的尝试,我对如何使用 Flash 来做 WinForm 程序的界面产生了兴趣,于是学习了一些资料,摘要于此。 要在 WinForm 中使用 Flash,通常需要用到 Shockwave Flash Object 这个 COM 组件。 (/csharp/fscommand.asp) (/useritems/FlashDBInteract.asp) 具体步骤如下: 首先添加对 COM 组件 Shockwave Flash Object 的引用,将该组件拖到窗体上之后,可以设置如下关键属性: Movie: Flash 的存放地址 EmbedMovie: 是否嵌入到程序的资源中。 接下来你可以设置其他一些属性,使得 Flash 的窗口最大化,隐藏掉其宿主程序的 C# WinForm 窗体。 在 Flash 的 ActionScript 中,可以通过 FSCommand 函数与 hosting app 通信,该函数有两个参数,分别是: command: 命令名称 parameters: 参数 例子: on(press){ ???? fscommand(Circule,?Green); } 在 C# 中,处理 Flash 对象的 FSCommand 事件即可。 如果该事件处理函数的 EventArgs 为 e, 则有如下对应关系: mand - Flash 中调用 FSCommand 时的 command 参数; e.args - Flash 中调用 FSCommand 时的 arguments 参数。 在 C# 中往 Flash 传递数值用 SetVariable 方法: axShockwaveFlash1.SetVariable(variablename,?valueasstring); 对应的,有一个 GetVariable 方法可以获得 Flash 中的变量值。 FSCommand 的参数只能传递一个,所以其功能存在一定的局限性。在你需要传递多个参数的时候,则需要在调用方用字符串拼接各个参数值,然后在被调用方重新解开。这种办法使得复杂的传值显得很丑陋。 不过,除了 FSCommand 外,我们还有另一种办法和 Flash 通信,就是使用 Flash Player 8 External API. (/cs/media/flashexternalapi.asp) 使用 External API,可以实现 ActionScript 和 C# 的双向调用。其好处就在于每次调用时的参数和返回值都通过一个 XML 文档来传递,这样就比 FSCommand 功能完善了很多。当然在 C# 中,我们也需要声明一下外部函数实现的对应关系。 ActionScript中的函数 代码片段 Flash ActionScript 中声明提供给 hosting application 调用的回调函数: import?Flash.external.ExternalInterface; function loadAndPlayVideo(uri:String):Void { videoPlayer.contentPath = uri; } ExternalInterface.addCallback(loadAndPlayVideo,?null,?loadAndPlayVideo); 函数解释 **************************************************************************************** public static addCallback(methodName:String, instance:Object, method:Function) : Boolean 将 ActionScript 方法注册为可从容器调用。成功调用 addCallBack() 后,容器中的 JavaScript 或 ActiveX 代码可以调用在 Flash Player 中注册的函数。 可用性:ActionScript 1.0;Flash Player 8 参数 methodName:String - 从 JavaScript 调用 ActionScript 函数时可使用的名称。此名称不必与 ActionScript 方法的实际名称匹配。 instance:Object - this 在该方法中被解析成的对象。此对象不一定是在其上可找到该方法的对象,您可以指定任何对象(或 null)。 method:Fun
显示全部
相似文档