Flash与C#通信
1.? 首先要插入Flash就必须使用Flash控件,在工具栏右键选择“选择项…”,然后在“COM组件”面板下点击“浏览”按钮,在本机电脑C:WINDOWSsystem32MacromedFlash目录里选择Flash10x.ocx(也有可能是Flash10v.ocx或flash10p.ocx),然后点击确定就可以了。在CMD里面输入如下: 2.? 打开VS,然后工具栏中选择的Flash控件Shockwave Flash Object拖到窗体中, 3.? 这个方法主要用到继承和重写等面向对象的核心内容。 public class FlashRightKey : AxShockwaveFlashObjects.AxShockwaveFlash ? 类写好了,我们要在Flash控件里面使用它,必须在实例化Flash控件的时候用如下代码(写在Flash.Designer.cs文件相应的地方): private FlashRightKey RollFlash; this.RollFalsh = new Namespace.FlashRightKey(); 4.? 通信数据采用XML格式。 C#代码: ? private void FlashTest_Load(object sender,EventArgs e) { Flash.Movie = Application.StartupPath + @"Test.swf"; } 调用flash提供的外部接口 private void CallFunction(string funName,string flag) Flash.CallFunction(EncodeXML(funName,flag)); }? 将数据转换成XML格式 private string EncodeXML(string funName,240)"> StringBuilder sb = new StringBuilder(); XmlTextWriter xw = new XmlTextWriter(new StringWriter(sb)); ? xw.WriteStartElement("invoke"); xw.WriteAttributeString("name",funName); xw.WriteAttributeString("returntype","xml"); xw.WriteStartElement("arguments"); xw.WriteStartElement("string"); xw.WriteString(flag); xw.WriteEndElement(); xw.Flush(); xw.Close(); return sb.ToString(); }? 执行动画开始操作 private void Btn_Start_Click(object sender,240)"> CallFunction("Call","001"); } ? private void Btn_End_Click(object sender,"002"); ? 接收Flash发送过来的数据 private void Flash_FlashCall(object sender,AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e) XmlDocument xd = new XmlDocument(); xd.LoadXml(e.request); XmlNodeList xl = xd.getElementsByTagName_r("arguments"); MessageBox.Show(xl[0].FirstChild.InnerText); Flash代码: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |