要实现flash与其他应用程序通信首先必需要了解flash中fscommand函数,格式为:
fscommand函数可以使 SWF 文件与 Flash Player 或承载 Flash Player 的程序(如 Web 浏览器)进行通讯。还可以使用
那么怎样实现flash与C#或者是其他应用程序的通信呢,这里我以C#为例:
首先在flash创建一个按钮,并命名为flashToCBtn,在创建一个动态文本框,命名为flashFromCTxt,然后在第一侦添加如下代码:
flashToCBnt.onRelease=function()
{
fscommand("cmd","hello C#");
}
到这里flash已经完成了,下面就是C#了:
打开vs新建一个C#的项目,在窗体上添加一个axShockwaveFlashObject的控件,将他的影片URL指向你刚刚发布的flash,然后再该控件的FSCommand事件上添加如下代码:
if (e.command == "cmd")
{
MessageBox.Show(e.args.ToString());
}
测试项目,在单击flashToCBtn按钮,将弹出"hello C#";你还可以在C#中通过阿axShockwaveFlash1.SetVariable来控制flash中的影片或者是变量的值。
Flash发送到C# :
在Flash中设计一个按钮,事件为:
btn.onRelease = function() {
fscommand("Send Action", "www.an86.net");
};
在c#中插入Shockwave Flash Object 对象 movie的属性就是Flash[SWF]影片的地址。
在Shockwave Flash Object 的 FSCommand 事件中插入:
if(e.command == "Send Action")
{
MessageBox.Show("调用FLASH按钮事件成功 "+e.args) ;
}
解释: 从Flash中发送函数 Send Action 另加一个参数 txt 到 C#中!
而在C#中的 FSCommand 事件中判断 所发送的 函数名:
if(e.command == "Send Action")
如果要获取参数 e.args 就是 txt 的参数值!
C#发送到Flash :
在c#中放入一个按钮,事件:
private void button1_Click(object sender, System.EventArgs e)
{
string flashData = "一二三四五六七";
axShockwaveFlash1.SetVariable("txt",flashData);
}
而在Flash中就写两句代码就可以了:
var mo:Object=new Object();
mo.watch("txt");
这时在Flash中声明了一个娈量 txt 值为 "一二三四五六七"
就被这两句代码给接收了!
你可以再Flash中多添加一个按钮 trace(txt) 试试!
标签:flash,c#,Flash,通信,Send,C#,按钮,txt From: https://blog.51cto.com/u_1040535/7637357