C# 与Flash 通信

C#主要代码:
//接收flash发送过来的信息
private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
XmlDocument document = new XmlDocument();
document.LoadXml(e.request);
XmlNodeList list = document.GetElementsByTagName("arguments");
LoadTitleAndAuthor(Convert.ToString(list[0].FirstChild.InnerText), Convert.ToString(list[0].ChildNodes[1].InnerText));
}
public void LoadTitleAndAuthor(string title, string author)
{
textBox2.Text=title + "," + author;
}
//向flash发送信息
private void sendToFlash_Click(object sender, EventArgs e)
{
this.axShockwaveFlash1.CallFunction("<invoke name=\"loadMsg\" returntype=\"xml\"><arguments><string>" +
this.textBox1.Text + "</string><string>男<string></arguments></invoke>");
}
private void Form1_Load(object sender, EventArgs e)
{
this.axShockwaveFlash1.Movie = Application.StartupPath + "/未命名-4.swf";
}
flash文件主要代码as2.0:
接收有C#发送过来的消息
import flash.external.ExternalInterface;
ExternalInterface.addCallback("loadMsg",null,loadMsg);
function loadMsg(t1:String,t2:String):Void{
txtName.text=t1;
txtAge.text=t2;
}
向C#窗体发送消息:
on(release)
{
import flash.external.ExternalInterface;
//trace("metadata received");
ExternalInterface.call("loadMsg", txtName.text,txtAge.text);
}
as3.0 类文件编写
package{
import flash.display.*;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.getDefinitionByName;
import flash.external.ExternalInterface;
import flash.text.*;
public class Clas extends MovieClip
{
public function Clas()
{
btnsend.addEventListener(MouseEvent.CLICK,onclick);
ExternalInterface.addCallback("setTxt",setTxt);
}
public function onclick(evt:MouseEvent){
ExternalInterface.call("toTxt",this.txtsend.text);
}
public function setTxt(s:String,s2:String)
{
this.txtmsg.text=s+"-"+s2;
}
}
}
C#代码的编写与as2.0通信的一样。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器