FLEX与C#交互概要
来源:互联网 发布:美国域名注册商 编辑:程序博客网 时间:2024/06/05 20:35
准备工作
Flex方面:
1、打开index.template.html,并在js脚本里填入方法:
C#方面:
1、在winform中插入WebBrowser控件,命名为wb
2、在构造函数中写代码
wb.ObjectForScripting = this;
wb.Navigate(Application.StartupPath + @"/Flex Builder生成的HTML文件.html"); // 前提是FLEX生成的HTML等文件都放在C#的生成文件夹DEBUG中
3、在类上做元数据标签[ComVisible(true)]
====================================
开始调用:
FLEX->C#
flex:
ExternalInterface.call("invoke","C#方法名",参数1,参数2…………); // 不返回值
var str : String = ExternalInterface.call("invoke","C#方法名",参数1,参数2…………); // 返回值
C#
写一public方法
public void C#方法名(string args) {} // 不返回值
public string C#方法名(string args) {} // 返回值
public string C#方法名( ) {} // 无参数
注意:由于invoke方法的定义,故C#方法只有一个参数或不带参,FLEX传递过来的变量自动会变成以"|"形式隔开的字符串。
可以用Split方法分开操作
C# -> FLEX
flex:
在一开始,如程序的initialize事件init()中做
private function init() : void {
ExternalInterface.addCallback("onTest",test); // onTest对C#公开的方法,test对FLEX执行的方法
}
private function test() : void {
// 执行的内容,无返回值
}
或
private function test() : void {
// 执行的内容,有返回值
}
C#:
var objs = new object[] {"onTest",2,3}; // 第一个为对应FLEX的方法名,后面为参数
wb.Document.InvokeScript("call", objs); // 调用FLEX方法,注意由于call方法的设计,到FLEX后的参数同样自动变为以"|"隔开
同样可以有返回值接收到
var str = wb.Document.InvokeScript("call", objs);
- FLEX与C#交互概要
- flex与C#交互实现文件上传
- Flex与Servlet交互
- Flex与JavaScript交互
- Flex与Ajax交互
- flex与数据库交互
- flex与数据库交互
- flex与php交互
- flex与mysql交互
- flex与数据库交互
- Delphi与Flex交互
- FLEX与javascript交互
- flex与js交互
- Flex与JavaScript交互
- flex与ajax交互
- flex与ajax交互
- Flex与Servlet交互
- flex数据传输与交互
- std::map和multimap
- 【ubuntu】ubuntu sudo apt-get install 命令出错
- Unio 和 Union All 区别
- hdu1171激动
- Servlet作用
- FLEX与C#交互概要
- Visual C++内存泄露检测—VLD工具使用说明
- Qt + 觸控 移植 – Qt and Touch Screen Porting to SBC6446 with LEOs for DaVinci
- hdu 3452 Bonsai(有点纠结的)
- 怎样才能充分利用SQL索引
- platform_driver_probe()
- C/C++中关于地址、指针和引用变量的学习笔记(九) : 内存结构
- 工厂模式
- URL乱码问题(转)