返回 导航

Flex

hangge.com

Flex - flex与flash间通信(使用LocalConnection)

作者:hangge | 2015-04-08 10:45
使用LocalConnection我们可以很方便的实现Flex与Flash之间的通信,既可以从Flex发消息到Flash中,也可以从Flash发消息到Flex端。下面通过一个样例来演示使用方法。

效果图如下:


--- Flash端 movie.swf ---
//创建LocalConnection对象,接受flex消息
var localConn:LocalConnection = new LocalConnection();

//localConnt添加一个停止函数
localConn.stopMove = function() {
	stop();
}

//localConnt添加一个继续函数
localConn.resumeMove = function() {
	play();
}

//连接名为flexToSwf的 连接
localConn.connect("flexToSwf");
 
ball.onRelease = function() {
	//发送消息给flex端
	var sendLC:LocalConnection = new LocalConnection();
	sendLC.send( "flashConn", "clickBall" );
}

--- Flex端 F.mxml ---
<?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.net.LocalConnection;
			//创建一个发送消息的本地链接
			private var sendConn:LocalConnection;
			//创建一个接收消息的本地连接
			private var receiverConn:LocalConnection
			
			internal function initApp():void{
				//初始化变量
				sendConn = new LocalConnection();    
				receiverConn = new LocalConnection();
				//LocalConnection接受函数调用的时候必须指定client属性
				receiverConn.client = this;
				//连接名为flashConn的连接
				receiverConn.connect("flashConn");
			}
			
			//停止
			internal function stopMove():void{
				sendConn.send("flexToSwf","stopMove");
			}
			
			//继续
			internal function doResume():void{
				sendConn.send("flexToSwf","resumeMove");
			}
			
			//点击小球,这个函数被swf调用
			public function clickBall():void{
				sendConn.send("flexToSwf","stopMove");
				
			}
		]]>
	</mx:Script>
	
	<mx:SWFLoader x="30" y="10" source="movie.swf"/>
	<mx:Button x="30" y="301.5" label="停止动画" click="stopMove()"/>
	<mx:Button x="126" y="301.5" label="继续动画" click="doResume()"/>	
</mx:Application>
评论

全部评论(0)

回到顶部