LocalConnection的使用

刚开始使用as3进行编程,想使用LocalConnection。结果动手写的代码遇到各种异常信息。

搜索对应的异常信息,最后还是没有解决。

 

 

还好adobe的官方文档挺管用呀,打开下面的连接。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/LocalConnection.html

 

在上面连接的最底部,有如下代码:

 

 

// Code in LocalConnectionSenderExample.as
package {
 import flash.display.Sprite;
 import flash.events.MouseEvent;
 import flash.net.LocalConnection;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.events.StatusEvent;
 import flash.text.TextFieldAutoSize;
 
 public class LocalConnectionSenderExample extends Sprite {
  private var conn:LocalConnection;
  
  // UI elements
  private var messageLabel:TextField;
  private var message:TextField;
  private var sendBtn:Sprite;
  
  public function LocalConnectionSenderExample() {
   buildUI();
   sendBtn.addEventListener(MouseEvent.CLICK, sendMessage);
   conn = new LocalConnection();
   conn.addEventListener(StatusEvent.STATUS, onStatus);
  }
  
  private function sendMessage(event:MouseEvent):void {
   conn.send("myConnection", "lcHandler", message.text);
  }
  
  private function onStatus(event:StatusEvent):void {
   switch (event.level) {
    case "status":
     trace("LocalConnection.send() succeeded");
     break;
    case "error":
     trace("LocalConnection.send() failed");
     break;
   }
  }
  
  private function buildUI():void {
   const hPadding:uint = 5;
   // messageLabel
   messageLabel = new TextField();
   messageLabel.x = 10;
   messageLabel.y = 10;
   messageLabel.text = "Text to send:";
   messageLabel.autoSize = TextFieldAutoSize.LEFT;
   addChild(messageLabel);
   
   // message
   message = new TextField();
   message.x = messageLabel.x + messageLabel.width + hPadding;
   message.y = 10;
   message.width = 120;
   message.height = 20;
   message.background = true;
   message.border = true;
   message.type = TextFieldType.INPUT;
   addChild(message);
   
   // sendBtn
   sendBtn = new Sprite();
   sendBtn.x = message.x + message.width + hPadding;
   sendBtn.y = 10;
   var sendLbl:TextField = new TextField();
   sendLbl.x = 1 + hPadding;
   sendLbl.y = 1;
   sendLbl.selectable = false;
   sendLbl.autoSize = TextFieldAutoSize.LEFT;
   sendLbl.text = "Send";
   sendBtn.addChild(sendLbl);
   sendBtn.graphics.lineStyle(1);
   sendBtn.graphics.beginFill(0xcccccc);
   sendBtn.graphics.drawRoundRect(0, 0, (sendLbl.width + 2 + hPadding + hPadding), (sendLbl.height + 2), 5, 5);
   sendBtn.graphics.endFill();
   addChild(sendBtn);
  }
 }
}
 

 

 

 

// Code in LocalConnectionReceiverExample.as
package {
 import flash.display.Sprite;
 import flash.net.LocalConnection;
 import flash.text.TextField;
 
 public class LocalConnectionReceiverExample extends Sprite {
  private var conn:LocalConnection;
  private var output:TextField;
  
  public function LocalConnectionReceiverExample()     {
   buildUI();
   
   conn = new LocalConnection();
   conn.client = this;
   try {
    conn.connect("myConnection");
   } catch (error:ArgumentError) {
    trace("Can't connect...the connection name is already being used by another SWF");
   }
  }
  
  public function lcHandler(msg:String):void {
   output.appendText(msg + "/n");
  }
  
  private function buildUI():void {
   output = new TextField();
   output.background = true;
   output.border = true;
   output.wordWrap = true;
   addChild(output);
  }
 }
}

 

在Adobe® Flash® Builder™ 4中分别新建两个ActionScript项目,运行bin-debug目录下生成的对应的swf文件。

即可得到预期的效果。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值