在flash平台中,swf之间的通信一般采用LocalConnection。例如,Alcon日志工具就是一个典型的例子。
通信可以通过以下方式进行:
1 在一个 SWF 文件内
2 在多个 SWF 文件之间
3 在 AIR 应用程序的内容(基于 SWF 或基于 HTML)之间
4 在 AIR 应用程序的内容(基于 SWF 或基于 HTML)和运行于浏览器中的 SWF 内容之间
LocalConnection 对象只能在运行于同一台客户端计算机上的文件之间进行通信,但这些文件可以在不同的应用程序中运行。例如,浏览器中运行的文件和 Adobe AIR 中运行的 SWF 文件。
ActionScript 3.0 中创建的 LocalConnection 对象可以与 ActionScript 1.0 或 2.0 中创建的 LocalConnection 对象通信。反之亦然。Flash Player 可自动处理不同版本 LocalConnection 对象间的通信。
一个文件被称为发送方 文件,此文件包含要调用的方法。发送方文件必须包含一个 LocalConnection 对象和对 send()
方法的调用。另一个文件被称为接收方文件;此文件为调用方法的文件。接收方文件必须包含另一个 LocalConnection 对象和对 connect()
方法的调用。
send()
和 connect()
的使用将有所不同,这取决于 文件是在同一个域中、在具有可预知域名的不同域中还是在具有不可预知域名(即动态域名)的不同域中。本文主要说明下不可预知不同域使用注意点,其他可以参考AS3参考文档。
LocalConnection通过allowDomain(*)允许从所有域的调用,也可以通过调用多次allowDomain()方法来添加允许的域.在不可以预知的不同域中,需要在connectName的名称之前添加下划线(“_”)。
使用LocalConnection需要注意下面几点:
1 同一个域中使用LocalConection通信不要使用“_”开头来作为connectName,否则会是程序变慢。
2 send数据内容限制为 40 千字节。
3 LocalConnection是一个比较占内存的对象。
下面是Alcon的代码,大于40K它是用ShareObject处理的。
/* If the data size exceeds 39Kb, use a LSO instead */
if (s > 39000)
{
storeDataLSO(m, d);
m = "onLargeData";
d = null;
}
_connection.send("_alcon_lc", m, d, l, r, "");
/**
* Stores data larger than 40Kb to a Local Shared Object.
*
* @private
*/
private static function storeDataLSO(m:String, d:*):void
{
var sharedObject:SharedObject = SharedObject.getLocal("alcon", "/");
sharedObject.data["alconMethod"] = m;
sharedObject.data["alconData"] = d;
try
{
var flushResult:String = sharedObject.flush();
if (flushResult == SharedObjectFlushStatus.FLUSHED)
{
return;
}
}
catch (e:Error)
{
Security.showSettings(SecurityPanel.LOCAL_STORAGE);
}
}
分享到:
相关推荐
本文将详细介绍SWF文件之间通信的方式,以及如何实现Flex与SWF之间的通信。 #### 一、SWF文件之间的通信 SWF文件之间的通信主要通过LocalConnection来实现。LocalConnection是一种允许在同一台计算机上运行的不同...
在“说明.doc”文档中,可能详细介绍了创建和配置本地连接的过程,包括在ActionScript中创建LocalConnection对象,设置名称并监听消息,以及在VC中实现对应的接口来接收和响应这些消息。ActionScript的代码可能类似...
本文将详细介绍如何利用Flex技术解决消息通讯、账号重复登录以及限制一台电脑仅允许一个账号登录等问题。 #### 一、消息通讯的实现 Flex是一种强大的客户端开发技术,它可以很好地处理多媒体内容,并且能够通过...
- **示例**:提供了一个设置LocalConnection权限的例子,展示了如何控制对本地脚本的访问权限。 通过本手册的学习,开发者不仅可以掌握ActionScript 3.0的基本概念和语法,还能深入了解其高级特性和应用场景,为...
9. **本地存储**:讨论LocalConnection、SharedObject和FileReference,用于在用户计算机上存储和读取数据。 10. **错误处理**:介绍如何使用try-catch语句进行错误捕获,以及Error类的使用。 11. **性能优化**:...
通过以上介绍,我们可以了解到Flex模块的基本使用和通信机制。在实际开发中,灵活运用Flex模块可以极大地提升应用程序的可扩展性和性能。在ITEYE分享的这个实例中,开发者可能通过具体的代码示例和演示,详细展示了...
文档详细介绍了如何进行HTTP、FTP请求,以及如何使用LocalConnection实现本地应用间的通信。 六、与其他技术的集成 Flash 11还支持与HTML5、JavaScript的交互,通过ExternalInterface API,开发者可以将Flash内容...
本文详细介绍如何利用VBS脚本配合bat批处理实现“无线网络连接”与“本地连接”的自动切换,特别适用于需要频繁切换不同网络连接场景的情况。 #### 实现原理 此方案的核心在于通过VBS脚本来查找并控制指定名称的...
6. **网络功能**:介绍加载外部数据(如XML、文本或图像)、发送HTTP请求(如XMLSocket)及使用LocalConnection进行本地通信。 7. **错误处理**:讨论如何使用try...catch语句进行错误捕获和处理。 8. **组件使用*...
7. **网络通信**:AS3支持HTTP、Socket和LocalConnection等网络通信方式,使得开发网络应用变得简单。这部分内容将介绍如何进行HTTP请求和响应,以及数据的发送和接收。 8. **音频和视频处理**:AS3提供对音频和...
7. **数据访问**:学习如何使用Flex与数据库交互,如通过 BlazeDS 或 LCDS 实现与Java后端的数据交换,以及使用LocalConnection进行本地存储。 8. **图形和动画**:掌握基本的绘图API,如Graphics类,以及如何创建...
3. **事件处理**:介绍AS3.0的事件模型,包括事件的派发、监听和处理,以及常见事件类型如MouseEvent和KeyboardEvent。 4. **显示对象**:关于Stage、DisplayObject、Sprite和MovieClip等类的使用,以及图形绘制、...
9. **访问本地存储**:Flex支持使用LocalConnection和SharedObject进行本地数据存储,这对于离线应用或需要保存用户设置的情况非常有用。 10. **优化与性能**:书中可能会介绍提高Flex应用性能的技巧,如减少组件...
这个中文帮助文档将详细介绍这些概念,并提供详细的API参考,帮助开发者快速查找和理解ActionScript 3.0中的各种功能。对于初学者,建议从基础语法和面向对象编程入手,逐步熟悉显示列表和事件处理,然后深入到更...
通过Flash的Camera类,我们可以访问用户的电脑摄像头,然后利用LocalConnection对象与JavaScript进行通信,将捕获的图像传递到前端页面。 具体步骤如下: 1. **创建Flash组件**:在Flash中创建一个新的AS3项目,...
- **LocalConnection:** `_lc` (例如:`server_lc`) - **Microphone:** `_mic` (例如:`input_mic`) - **PrintJob:** `_pj` (例如:`print_pj`) - **NetConnection:** `_nc` (例如:`connection_nc`) - **NetStream:...
10. **本地存储**:通过LocalConnection和SharedObject类,AS3可以实现本地数据的存储和共享。 11. **ActionScript 3.0类库**:包括Flash Player API、Flash的内置类库如Math、Date、Array等,以及第三方库的使用...
2. **TraceTarget**:通过`trace()`函数将日志消息发送到本地连接(LocalConnection)。 这些默认的目标可能不足以满足所有场景的需求,比如当开发者希望将日志消息输出到特定的UI控件,如`TextArea`时。 #### 四、...