由于我的那个《求flash控件的属性及事件方法在C#中》帖子由于我自己的回复超过3次,无法浮出水面了。
今天经过细心的观察网络的例子,明白了一些flash和C#的交互。把经验分享。
例子:
private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
{
if(e.command == "Send Action")
{
MessageBox.Show("调用FLASH按钮事件成功 "+e.args) ;
}
if(e.command == "Send Action1")
{
MessageBox.Show("调用FLASH自定义按钮事件成功 "+e.args) ;
}
}
private void button1_Click(object sender, System.EventArgs e)
{
string flashData = "一二三四五六七";
axShockwaveFlash1.SetVariable("txt",flashData);
}
private void Form1_Load(object sender, System.EventArgs e)
{
axShockwaveFlash1.Movie=Application.StartupPath+"//flash//menu.swf";
}
private void button2_Click(object sender, System.EventArgs e)
{
string flashData1 = "洒洒扫阿萨萨阿司";
axShockwaveFlash1.SetVariable("abc",flashData1);
}
flash代码:
var mo:Object=new Object();
mo.watch("txt");
mo.watch("abc");
bte.onRelease = function() {
fscommand("Send Action1", "www.an86.net");
};
btn.onRelease = function() {
fscommand("Send Action", "www.an86.net");
};
其实一看就能明白,C#和flash传递信息是通过变量来传递的,在flash中,我们把文本框,和按钮的变量设置好,这里按钮是btn,bte,文本框txt,abc,在
string flashData1 = "洒洒扫阿萨萨阿司";
axShockwaveFlash1.SetVariable("abc",flashData1);
C#把变量利用变量abc传递过去,在mo.watch("abc");接受了该变量。
private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
C#利用上面的代码捕捉了flash的按钮事件,e.args捕捉了 "www.an86.net"信息,我ishi我们在C#中只需要判断flash的变量,来让C#来做事情,我们在作漂亮的按钮和界面可以解决了,但是我还没有解决如果我把1、2、3、4、5、6、7、8、9在不同的时间传入flash通过flash作不同的动画,例如速度,高度等。。
转自:http://topic.csdn.net/t/20061217/17/5236766.html