额 这两天继续写那个 抽奖程序。。
先是 写好了 按几等奖 几个人的 界面可以抽出来了号码于是在找了winform的皮肤界面。还不错。。
给 assistant杨看然后又给我说 没滚动的效果 看起来不好 没抽奖的刺激感。
然后再到网上找了个 滚动效果的 FLASH。。
接着找了一天终于知道了 FLASH 的编程语言 如何简单修改。。。 C#与FLASH的 简单参数通信。
FLASH中
import flash.external.ExternalInterface;
ExternalInterface.addCallback("AddLog",AddLog);
function AddLog(str:String)
{ preview(Number(str));
}
C#:
this.axShockwaveFlash1.Movie = Application.StartupPath + "//flash//main.swf";
this.axShockwaveFlash1.CallFunction("<invoke name=/"AddLog/" returntype=/"xml/">"
然后 现在回想了下
找了网上有说用这个
fscommand 函数可以使 SWF 文件与 Flash Player 或承载 Flash Player 的程序(如 Web 浏览器)进行通讯。还可以使用
首先在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) ;
}
上面都可以调试成功
但是下面 C#到FLASH 就不知道怎么调试都不成。。。
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");
可能 这里 不知道 如何写 no_txt.text= ... ;
这里no_txt就是显示不出来 传过来的 数据。。
本文分享了作者在开发抽奖程序过程中,实现C#与Flash交互的经验。文章详细介绍了使用ExternalInterface进行通信的方法,并探讨了fscommand函数在Flash与宿主程序间通信的应用。
3944

被折叠的 条评论
为什么被折叠?



