实现C#绑定数据并与flash交互,向flash抛参,并用到触发器实时显示处理
功能目的:C#绑定数据并与flash交互,将数据抛参实时显示处理
实现方法:要点1 C#与flash交互,抛参
2 数据绑定后并实时显示,触发器的使用
3 网络通信利用 UDP协议
具体实施:
1 引用
using System.Text.RegularExpressions ;
using AxShockwaveFlashObjects;
using ShockwaveFlashObjects;
using System.Data.SqlClient;
using System.Configuration ;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
2 数据绑定
Thread MyThread;
DataSet ds;
//现在的目的是把www_wxsj中的数据输出,并传参给flash
//把DataSet中的列DataVal中的值取出,并抛参
axShockwaveFlash1.Movie = ("D:\\ProjectC#\\VSFLASH916\\VSFLASH916\\Flash\\智慧建筑.swf");
axShockwaveFlash1.Play();
string sql = "select DataVal from [www_wxsj]";
ds = new DataSet();
ds = DoDataBase.GetDataSet(sql);
this.axShockwaveFlash1.CallFunction("<invoke name=\"jiecan\"><arguments><string>" + ds.Tables[0].Rows[0][0].ToString().Trim() + "</string><string>" + ds.Tables[0].Rows[1][0].ToString().Trim() + "</string><string>" + ds.Tables[0].Rows[2][0].ToString().Trim() + "</string></arguments></invoke>");
3 UDP接收数据
#region UDP 接收数据的方法
ZhiHuiJianZhu.CheckForIllegalCrossThreadCalls = false;
MyThread = new Thread(new ThreadStart(ReceiveDataFromUDPClient));
MyThread.IsBackground = true;
MyThread.Start();
#endregion
#region ReceiveDataFromUDPClient
public void ReceiveDataFromUDPClient()
{
while(true)
{
System.Net.Sockets.UdpClient udpClient = new UdpClient(1002);
System.Net.IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any,0);
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
string returnData = Encoding.Default.GetString(receiveBytes);
//this.label1.Text = returnData.Trim().ToString();//测试
//此处想办法使用触发器,目的是把实时更新数据库的数据并显示在flash上
// axShockwaveFlash1.CallFunction(returnData(5));
string [] st_a=returnData.Split('-');//过滤掉触发器里面的分隔符号“-”
axShockwaveFlash1.CallFunction("<invoke name=\"jiecan\" returntype=\"xml\"><arguments><string>" + st_a[0].ToString().Trim() + "</string><string>" + st_a[1].ToString().Trim() + "</string><string>" + st_a[2].ToString().Trim() + "</string></arguments></invoke>");
udpClient.Close();
}
}
#endregion