服务端FLASH
客户端FLASH
在两个SWF之间的通信通常使用LocalConnection来传递信息,但只能运行于同一台客户端计算机上的SWF之间进行通信,SWF文件可以在不同的应用程序中。
首先编写服务端程序sevSide类,先在函数中创建一个LocalConnection类对象conn并指定回调对象为this,类中包括一个turnMC方法来接收客户端传来的信息控制mc的缩放。
package {
import flash.display.MovieClip;
import flash.net.LocalConnection;
import flash.events.Event;
import gs.TweenMax;
import fl.motion.easing.*;public class sevSide extends MovieClip {
private var conn:LocalConnection;
private var speed:int;public function sevSide() {
conn = new LocalConnection();
conn.client=this;
try {
conn.connect("myConnection");
} catch (error:ArgumentError) {
trace("不能创建连接,名字已被占用");
}
}
public function turnMc(flag:Boolean) {
if (flag) {
TweenMax.to(mc, 1, {scaleX:0.5, scaleY:0.5, ease:Bounce.easeOut});} else {
TweenMax.to(mc, 0.5, {scaleX:1, scaleY:1, ease:Bounce.easeOut});
}
}
}
}
创建客户端程序client类,定义LocalConnection类对象conn,在这个对象上注册StatusEvent.STATUS事件来侦听函数用来检测向服务器连接信息的状态。
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.net.LocalConnection;
import flash.text.TextField;
import flash.events.StatusEvent;
public class client extends Sprite {
private var conn:LocalConnection;
public function client() {
btnSX.buttonMode = true;
btnFD.buttonMode = true;
btnSX.addEventListener(MouseEvent.CLICK,sxpic);
btnFD.addEventListener(MouseEvent.CLICK,fdpic);
conn = new LocalConnection();
conn.addEventListener(StatusEvent.STATUS,onStatus);
}
private function sxpic(e:MouseEvent):void {
conn.send("myConnection","turnMc",false);}
private function fdpic(e:MouseEvent):void {
conn.send("myConnection","turnMc",true);}
private function onStatus(event:StatusEvent):void {
switch (event.level) {
case "status" :
trace("发送成功");
break;
case "error" :
trace("发送失败");
break;
}
}
}
}
