服务端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;
   }
  }
 }
}

我内心激动,有话要说