WPF内嵌Flsh并交互

将flash嵌入WPF页面:

//添加加载flash的控件

// 创建 host
对象
           
System.Windows.Forms.Integration.WindowsFormsHost host = new
System.Windows.Forms.Integration.WindowsFormsHost();

// 实例化
axShockwaveFlash1
           
axShockwaveFlash1 = new
AxShockwaveFlashObjects.AxShockwaveFlash();

//
装载.axShockwaveFlash1
           
host.Child = axShockwaveFlash1;

// 将 host
对象嵌入FlashGrid
           
this.FlashGrid.Children.Add(host);

if (strPhysName ==
"head")
           
{
               
axShockwaveFlash1.ScaleMode =
2;
           
}

// 设置 .swf
文件相对路径
           
string swfPath =
System.Environment.CurrentDirectory;
           
swfPath += strPhysName == "head" ? @"\flash\心率\XinLv.swf" :
@"\flash\脑电\" +
"NaoDian.swf";
           
axShockwaveFlash1.Movie = swfPath;

如果需要与flash交互则需要以下操作:

注册flash调用c#的函数
           
axShockwaveFlash1.FSCommand += GameFlash_FSCommand;

///
<summary>
        ///
flash向c#发数据的时候执行的函数
       
/// </summary>
       
/// <param
name="sender"></param>
       
/// <param
name="e"></param>
       
void GameFlash_FSCommand(object sender,
AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent
e)//接收flash传出参数
       
{
           
if (e.command ==
"sendData")
           
{
               
CloseMessage();
               
string strValue =
e.args.ToString();
               
InsertUserReport(strValue);

this.Close();
           
}
           
else if (e.command ==
"end")
           
{
               
CloseMessage();
               
this.Close();
           
}

}

///
<summary>
        ///
向flash
传值
        ///
< /summary>
        ///
<param
name="funName"></param>
       
/// <param
name="arg"></param>
       
private void callFunction(string funName, string
arg)
       
{
           
//C#传给Flash的值
           
axShockwaveFlash1.CallFunction("<invoke name=\"" + funName + "\"
returntype=\"xml\"><arguments><string>" + arg +
"</string></arguments></invoke>");
       
}

//CallFunction:他是axShockwaveFlash1控件的函数用于调用flash的函数给flash传递参数。

///
<summary>
        ///
向flash传值
调用函数

        ///
</summary>
        ///
<param
name="sender"></param>
       
/// <param
name="e"></param>
       
private void timer_Tick(object sender, EventArgs
e)
       
{
           
if (!string.IsNullOrEmpty(strzhuyili) &&
!string.IsNullOrEmpty(strfangsudu))
           
{
               
string setFS =
strfangsudu.TrimEnd(‘|‘).Split(‘|‘)[0];
               
string setZY =
strzhuyili.TrimEnd(‘|‘).Split(‘|‘)[0];
               
callFunction("setFS",
setFS);//"setFS"是flash那边的函数,setFS是给该函数传递的参数。
               
callFunction("setZY",
setZY);//同上解释
               
strzhuyili =
"";
               
strfangsudu =
"";
           
}
        }

WPF内嵌Flsh并交互,布布扣,bubuko.com

时间: 2024-08-12 21:25:53

WPF内嵌Flsh并交互的相关文章

转载 [WPF][C#]在WPF中内嵌WindowsForm控件-使用WindowsFormsControlLibrary

[WPF][C#]在WPF中内嵌WindowsForm控件-使用WindowsFormsControlLibrary 在[WPF][C#]在WPF中内嵌WindowsForm控件一文中为各位介绍了直接在WPF中使用XAML来嵌入Windows Form控件的作法,不过不是每个人都喜欢写XAML,而且有时候会需要把已经存在的Windows Form应用程序嵌入到WPF中,所以这次就来跟大家介绍怎么使用参考dll档的方式,把dll中的Windows Form加到WPF中. 都说了要使用Windows

《Programming WPF》翻译 第5章 2.内嵌样式

原文:<Programming WPF>翻译 第5章 2.内嵌样式 每一个“可样式化”的WPF元素都有一个Style属性,可以在内部设置这个属性--使用XAML属性-元素的语法(在第一章讨论的),如示例5-4. 示例5-4 <Button  x:Name="cell00" />   <Button.Style>     <Style>       <Setter Property="Button.FontSize"

App Webview与内嵌web交互实现

实现的逻辑大体是这样的,APP的webview可以拦截请求的链接地址,通过与内嵌界面约定请求前缀(如:webjs2app://),后接请求内容. 请求内容如下: {"functionName":"sayHello',"args":["haha"],"success":"onSuccess","error":"onError"} 是一个Json字串,包括信息有

关于Unity程序在IOS和Android上显示内嵌网页的方式

近期因为有须要在Unity程序执行在ios或android手机上显示内嵌网页.所以遍从网上搜集了一下相关的资料.整理例如以下: UnityWebCore 从搜索中先看到了这个.下载下来了以后发现这个的原理好像是通过调用浏览器内核.然后将网页渲染到mesh的方式完毕的. 但遗憾的是仅仅支持windows桌面版本号.但还是发出来大家假设有须要能够下载  下载地址: http://pan.baidu.com/s/1nt3FVkd unity-webview 这个是在github上找到的. 是一个kei

[转]内嵌页面iframe以及和其兄弟iframe的相互传值

原文出处 iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法) 主页面调用iframe: iframe页面调用主页面: 主页面的包含的iframe之间相互调用: 主要知识点 1:document.getElementById("ii").contentWindow 得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了: 2:$("#ii")[0].co

HTMl中的块标签和内嵌标签(内联标签)

块状标签: address - 地址 blockquote - 块引用center - 举中对齐块dir - 目录列表div - 常用块级容易,也是CSS layout的主要标签dl - 定义列表fieldset - form控制组form - 交互表单h1 - 大标题h2 - 副标题h3 - 3级标题h4 - 4级标题h5 - 5级标题h6 - 6级标题hr - 水平分隔线isindex - input promptmenu - 菜单列表noframes - frames可选内容,(对于不支持

内嵌页面iframe以及和其兄弟iframe的相互传值

主要知识点 1:document.getElementById("ii").contentWindow 得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了: 2:$("#ii")[0].contentWindow  如果用jquery选择器获得iframe,需要加一个[0]: 3:$("#ii")[0].contentWindow.$("#dd"

C#中内嵌资源的读取

起因 作为一个从Cpper转到C#并且直接从事WPF开发的萌新来说,正式编码过程中碰到了不少问题,一路上磕磕碰碰的.因为软件设计需求上的要求,需要将一些配置文件(XML.INI等)内嵌到程序中,等需要时进行读取.找了不少资料,加上自己的连蒙带猜,终于搞定了.在此,乘着还热乎着赶紧记录下.本人用的是Visual Studio 2015 英文版,其实都差不多的. 实现步骤 执行程序中加入内嵌文件步骤 在执行程序中找到 Resources.resx 并双击,会进入项目属性的 Resources 选项卡

C语言内嵌汇编

1.C语言内嵌汇编 1.1内嵌汇编的语法 1.2内嵌汇编示例 #include <stdio.h> int main() { int result = 0; int input = 1; int a = 1; int b = 2; asm volatile ( "movl %1, %0\n" // 通过占位符指定交互的变量 : "=r"(result) // 输出变量,与汇编交互 : "r"(input) // 输出变量,与汇编交互