flex与flash交互之LocalConnection

(先在此简单写一下,回头整理一下)

flex与flash编译后都为swf文件,所以之间的交互也比较方便,但要注意版本的问题,如果使用的AS3.0,那flash player在解析的时候会自动的使用AVM2处理,而使用AS2.0或者AS1.0的swf在运行时,flash player会自动的使用AVM1处理,,那么使用Action Script3.0的flex与flash as2就无法直接进行交互,好在action script2.0和AS3.0里都有LocalConnection可以来解决这个问题,使用LocalConnection的好处是不用管flex和flash各自使用的哪一个版本的Action Script,都可以进行通信交互,下面我们就来看一下其交互的实现

flash端(我这里用的都是AS3,AS2的可以修改一下)

 b1为一按钮,hi为一动态文本框

stop(); 
var conn:LocalConnection = new LocalConnection(); conn.addEventListener(StatusEvent.STATUS,onStatus); 
conn.connect("fromFlex"); 
conn.client = this; 
b1.addEventListener(MouseEvent.CLICK,onClick); 
function onClick(event:MouseEvent):void 
{ 
    conn.send("fromFlash","gogo");
 }
 function onStatus(event:StatusEvent):void 
{ 
   hi.text=event.level; 
} 
function showText(s:String):void 
{
  hi.text = s; 
}

  flex

function dh(event:Event):void 
{ 
   ddd.text="hi,FLEX/FLASH"; 
   conn = new LocalConnection(); 
   conn.client = this; conn.connect("fromFlash"); 
   conn.addEventListener(StatusEvent.STATUS,onStatus); 
}
 function onStatus(event:StatusEvent):void 
{ 
   ddd.text = event.level; 
} 
public function gogo():void 
{ 
   ddd.text="FLASH访问";
   Alert.show("wfwefwefwdf"); 
} 
function goto(event:MouseEvent):void 
{ 
   conn.send("fromFlex","showText","我爱死你了"); 
}

 

你可能感兴趣的:(Flex,Flash)