下例包含两个 ActionScript 类,这两个类应当编译到两个单独的 SWF 文件中:

在 LocalConnectionSenderExample SWF 文件中,将创建 LocalConnection 实例,并且当按下按钮时使用 call() 方法通过名为“myConnection”的连接调用 SWF 文件中名为 lcHandler 的方法,调用时将 TextField 的内容作为参数传递。

在 LocalConnectionReceiverExample SWF 文件中,将创建 LocalConnection 实例并调用 connect() 方法,将此 SWF 文件指定为发送到名为“myConnection”的连接的消息的接收方。此外,此类还包括一个名为 lcHandler() 的公共方法,此方法就是 LocalConnectionSenderExample SWF 文件调用的方法。调用时,作为参数传入的文本将被追加到舞台的 TextField 中。

注意:为了测试此示例,必须将两个 SWF 文件同时加载到同一台计算机上。

  1. // Code in LocalConnectionSenderExample.as
  2. package {
  3. import flash.display.Sprite;
  4. import flash.events.MouseEvent;
  5. import flash.net.LocalConnection;
  6. import flash.text.TextField;
  7. import flash.text.TextFieldType;
  8. import flash.events.StatusEvent;
  9. import flash.text.TextFieldAutoSize;
  10.  
  11. public class LocalConnectionSenderExample extends Sprite {
  12. private var conn:LocalConnection;
  13.  
  14. // UI elements
  15. private var messageLabel:TextField;
  16. private var message:TextField;
  17. private var sendBtn:Sprite;
  18.  
  19. public function LocalConnectionSenderExample() {
  20. buildUI();
  21. sendBtn.addEventListener(MouseEvent.CLICK, sendMessage);
  22. conn = new LocalConnection();
  23. conn.addEventListener(StatusEvent.STATUS, onStatus);
  24. }
  25.  
  26. private function sendMessage(event:MouseEvent):void {
  27. conn.send("myConnection", "lcHandler", message.text);
  28. }
  29.  
  30. private function onStatus(event:StatusEvent):void {
  31. switch (event.level) {
  32. case "status":
  33. trace("LocalConnection.send() succeeded");
  34. break;
  35. case "error":
  36. trace("LocalConnection.send() failed");
  37. break;
  38. }
  39. }
  40.  
  41. private function buildUI():void {
  42. const hPadding:uint = 5;
  43. // messageLabel
  44. messageLabel = new TextField();
  45. messageLabel.x = 10;
  46. messageLabel.y = 10;
  47. messageLabel.text = "Text to send:";
  48. messageLabel.autoSize = TextFieldAutoSize.LEFT;
  49. addChild(messageLabel);
  50.  
  51. // message
  52. message = new TextField();
  53. message.x = messageLabel.x + messageLabel.width + hPadding;
  54. message.y = 10;
  55. message.width = 120;
  56. message.height = 20;
  57. message.background = true;
  58. message.border = true;
  59. message.type = TextFieldType.INPUT;
  60. addChild(message);
  61.  
  62. // sendBtn
  63. sendBtn = new Sprite();
  64. sendBtn.x = message.x + message.width + hPadding;
  65. sendBtn.y = 10;
  66. var sendLbl:TextField = new TextField();
  67. sendLbl.x = 1 + hPadding;
  68. sendLbl.y = 1;
  69. sendLbl.selectable = false;
  70. sendLbl.autoSize = TextFieldAutoSize.LEFT;
  71. sendLbl.text = "Send";
  72. sendBtn.addChild(sendLbl);
  73. sendBtn.graphics.lineStyle(1);
  74. sendBtn.graphics.beginFill(0xcccccc);
  75. sendBtn.graphics.drawRoundRect(0, 0, (sendLbl.width + 2 + hPadding + hPadding), (sendLbl.height + 2), 5, 5);
  76. sendBtn.graphics.endFill();
  77. addChild(sendBtn);
  78. }
  79. }
  80. }
LocalConnectionReceiverExample.as
  1. // Code in LocalConnectionReceiverExample.as
  2. package {
  3. import flash.display.Sprite;
  4. import flash.net.LocalConnection;
  5. import flash.text.TextField;
  6.  
  7. public class LocalConnectionReceiverExample extends Sprite {
  8. private var conn:LocalConnection;
  9. private var output:TextField;
  10.  
  11. public function LocalConnectionReceiverExample() {
  12. buildUI();
  13.  
  14. conn = new LocalConnection();
  15. conn.client = this;
  16. try {
  17. conn.connect("myConnection");
  18. } catch (error:ArgumentError) {
  19. trace("Can't connect...the connection name is already being used by another SWF");
  20. }
  21. }
  22.  
  23. public function lcHandler(msg:String):void {
  24. output.appendText(msg + "\n");
  25. }
  26.  
  27. private function buildUI():void {
  28. output = new TextField();
  29. output.background = true;
  30. output.border = true;
  31. output.wordWrap = true;
  32. addChild(output);
  33. }
  34. }
  35. }

--------------------------------------------------------------------------------

[ActionScript 3.0] LocalConnection示例的更多相关文章

  1. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...

  2. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...

  3. [ActionScript 3.0] AS3.0 动态加载显示内容

    可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...

  4. ActionScript 3.0 API 中的 Video 类

    注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video  DisplayObject  Ev ...

  5. [ActionScript 3.0] as3处理xml的功能和遍历节点

    as3比as2处理xml的功能增强了N倍,获取或遍历节点非常之方便,类似于json对像的处理方式. XML 的一个强大功能是它能够通过文本字符的线性字符串提供复杂的嵌套数据.将数据加载到 XML 对象 ...

  6. [ActionScript 3.0] 正则表达式

    正则表达式: 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的.具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到 ...

  7. 在 Flash ActionScript 2.0 中调用 Javascript 方法

    本篇文章由:http://xinpure.com/call-the-javascript-method-in-flash-actionscript-2-0/ 在 Flash ActionScript ...

  8. ActionScript 3.0 for the Lunder Algorithm

    package com.feiruo.Calendar.LunderCalendar { /* *@ClassName: package:com.feiruo.Calendar.LunderCalen ...

  9. 【转】学习Flex ActionScript 3.0 强烈推荐电子书

    学习Flex ActionScript 3.0 强烈推荐电子书 AdvancED ActionScript 3.0 Animation(<Make things  move>姐妹篇,强烈推 ...

随机推荐

  1. vb.net 动态调用api

    Imports System Imports System.Runtime.InteropServices Public Class DllInvoke Public Sub New(ByVal DL ...

  2. cocos2d-x,求世界坐标

    老版: http://user.qzone.qq.com/350479720/blog/1384483239 一,求node的世界坐标.因为node的contentSize为0,局部坐标原点与node ...

  3. ant脚本编写

    使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...

  4. 通过命令行安装Android app

    手动安装安卓app的命令为:adb install -r C:\Users\Lihao\workspace\Appium_Demo\apps\app_F_1.3.0.apk

  5. CentOS6.6 安装 Tengine 笔记

    Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,所以仅供参考.一下午为本人的安装步骤及过程. 1.安装必要的编译环境好 由于Tengine安装需要使用源代码自行编译,所以在安装前 ...

  6. WebLogic11g-半小时让你的domain集群化

    WebLogic11g-半小时让你的domain集群化 WebLogic11g-负载分发 weblogic proxy.war配置 web.xml <!DOCTYPE web-app PUBLI ...

  7. JAVA:借用OpenOffice将上传的Word文档转换成Html格式

    为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl ...

  8. 彻底解决ASP.NET MVC 3 404错误码返回302的问题

    转自:http://blog.csdn.net/mycloudke/article/details/9746333 404状态码:,意味着当在页面上显示用户点击不存在,提高用户体验度,搜索引擎会放弃这 ...

  9. ubuntu 创建快捷方式

    sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse 这样就可以在命令行中敲:eclipse,来打开eclipse了. 应该还有一种方式,就像快捷方式一样. ...

  10. bzoj4705: 棋盘游戏

    Description 有一个N*M的棋盘,初始每个格子都是白色的. 行操作是指选定某一行,将这行所有格子的颜色取反(黑白互换). 列操作是指选定某一列,将这列所有格子的颜色取反. XX进行了R次行操 ...