C#(winform)下引用flash[转帖]

本文介绍了如何使用C#与Flash进行双向通信的方法。通过引入AxInterop.ShockwaveFlashObjects.dll和Interop.ShockwaveFlashObjects.dll两个DLL文件,实现从Flash向C#发送消息及从C#向Flash传递信息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提:引用以下两个dll
AxInterop.ShockwaveFlashObjects.dll
Interop.ShockwaveFlashObjects.dll
假如没有,可以到flash官方下载。
以上两个dll,除包含和c#本例要的的类和方法外,也已经继承了flash播放器了。
下面开始,介绍:
1> 定义一个private AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash1;
并加载某一flash,比如 test.swf,(推荐直接从面板中拖出flash,然后设置相关属性)
this.axShockwaveFlash1.LoadMovie(0, test.swf);
2> 实现从flash 传递一些信息到C# 内部:
    主要是为flash的一些original event 加一些c# function,例如:
this.axShockwaveFlash1.FSCommand +=new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEventHandler(axShockwaveFlash1_FSCommand)
这里的FSCommand是flash本身的一个事件,这里给他加上一个函数axShockwaveFlash1_FSCommand
private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
       {
           // We only want to react if we got our command
           if (e.command == "flashMessage")
           {
              this.richTextBox1.AppendText(e.args + "/n");
           }
       }
3> 实现从C#内部传递信息给flash,直接调用flash的一个函数就可以了。
this.axShockwaveFlash1.SetVariable("CSharpMessage", "Hi Flash!");
 
要实现上面的功能,还必须在flash里面写代码
/////////////////////////////////////////////////////////////////
// C-Sharp-Message-Broadcaster
// bcCSharpMessageonCSharpMessageCSharpMessage不是系统自带的
/////////////////////////////////////////////////////////////////
_root.bcCSharpMessage = function (varName, oldVal, newVal)
{
    arguments.callee.broadcastMessage("onCSharpMessage", newVal);
}
ASBroadcaster.initialize(_root.bcCSharpMessage);
 
_root.onLoad = function ()
{
    this.CSharpMessage = null;
    this.watch("CSharpMessage", this.bcCSharpMessage);
   // 这里的"CSharpMessage" 是dll里面SetVariable("CSharpMessage", "Hi Flash!");
}
 
/////////////////////////////////////////////////////////////////
// Test
/////////////////////////////////////////////////////////////////
 
// Receive from C-Sharp
obj = new Object();
obj.onCSharpMessage = function (strMessage)
{
    _root.flashoutput_txt.text += strMessage + "/n";
}
_root.bcCSharpMessage.addListener(obj);
 
 
// Send to C-Sharp
_root.buttonSend_mc.onRelease = function ()
{
    fscommand("flashMessage", "Hi C-Sharp"); 
    //fscommand 可以给c#接收
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值