2. VS2005 도구상자(Toolbox) - 항목선택(Choose Items) - COM 구성요소(Components) - Shockwave Flash Object 추가
3. AxInterop.ShockwaveFlashObjects.dll 을 Flash 를 사용하는 프로젝트의 obj/Debug 폴더 안에 추가
4. 도구상자에 추가된 SFO(ShockwaveFlashObject)를 디자인 창으로 가져온다.
c# 코드===================
private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
//Flash 로부터 정보 받기
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(e.request);
XmlNodeList ArgumentList = XmlDoc.GetElementsByTagName("arguments");
String XmlArguments = ArgumentList[0].InnerText;// +Environment.NewLine;
String[] arg = XmlArguments.Split('|');
if (arg[0] == "GetWaitList")
MessageBox.Show("Success");
} public Form1()
{
InitializeComponent();
this.axShockwaveFlash1.FlashCall +=
new AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEventHandler(this.axShockwaveFlash1_FlashCall);
}
private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
//Flash 로부터 정보 받기
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(e.request);
XmlNodeList ArgumentList = XmlDoc.GetElementsByTagName("arguments");
String XmlArguments = ArgumentList[0].InnerText;// +Environment.NewLine;
String[] arg = XmlArguments.Split('|');
if (arg[0] == "ButtonClick")
{
MessageBox.Show("ButtonClick Success");
}
else if (arg[0] == "ReceivedFlex")
MessageBox.Show("ReceivedFlex Success");
}
private void sendToFlash(string value1, string value2)
{
string args;
args = "<invoke name=\"receive\" returntype=\"xml\">";
args += "<arguments>";
args += "<string>" + value1 + "</string>";
args += "<string>" + value2 + "</string>";
args += "</arguments>";
args += "</invoke>";
//Call Flash Function
this.axShockwaveFlash1.CallFunction(args);
}
private void button1_Click(object sender, EventArgs e)
{
sendToFlash("SendToFlex", "bb");
}
}
Flex 코드 ======================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import flash.external.ExternalInterface;
import flash.events.*;
import flash.utils.*;
import flash.events.TimerEvent;
import mx.controls.Alert;
import flash.display.*;
private function initApp():void
{
if(ExternalInterface.available)
{
ExternalInterface.addCallback("receive", receive);
}
}
private function gender():void
{
ExternalInterface.call("call", "ButtonClick|");
}
private function receive(value1:String, value2:String):void
{
if(value1=="SendToFlex")
{
// mx.controls.Alert.show("통신 불가");
ExternalInterface.call("call", "ReceivedFlex|");
}
}
]]>
</mx:Script>
<mx:Button x="137.5" y="370" label="Button" width="202" height="111" click="gender();"/>
<mx:Text text="육심원" width="238" height="114" fontSize="36" fontWeight="bold" fontFamily="Georgia" textAlign="center" x="119.5" y="290" id="Textbox1"/>
</mx:Application>
[출처] c# flash 연동|작성자 나