要实现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) 试试!