as2 AVM1对象和as3对象的通信

简介: 注意本人遇到的 connection名称问题,因为实际上是域:名称,调用时有时会找不到,因此在connection名称前加_ 更真实的原因是as1.0不支持connection,所以发布时一定要看清楚哈,用flash player6不一定是as2.0! 具有不可预知域名的不同域。

注意本人遇到的 connection名称问题,因为实际上是域:名称,调用时有时会找不到,因此在connection名称前加_

更真实的原因是as1.0不支持connection,所以发布时一定要看清楚哈,用flash player6不一定是as2.0!

具有不可预知域名的不同域。 有时候,可能希望具有接收方 LocalConnection 对象的 SWF 文件在域之间具有更好的可移植性。 若不想在 send() 方法中指定域名,但要向 Flash Player 指出接收方和发送方 LocalConnection 对象不在同一个域中,可在 connect()send() 调用中的连接名之前加一个下划线 (_)。 若要允许在这两个不同域之间通信,请调用 allowDomain() 方法并传递您希望允许 LocalConnection 调用的域。 或者,也可以传递通配符 (*) 参数来允许从所有域调用:

// receivingLC is in http://www.domain.com/receiving.swf
receivingLC.allowDomain('*');
receivingLC.connect('_myConnection');

// sendingLC is in http://www.anotherdomain.com/sending.swf
sendingLC.send('_myConnection', 'myMethod');

 

 

同一个域。 这是使用 LocalConnection 对象最简单的情况,它只允许位于同一个域中的 LocalConnection 对象间通信(默认情况下,Flash Player 允许同域通信)。 当同一个域中的两个 SWF 文件通信时,无需实施任何特殊的安全措施,而只需将 connectionName 参数的同一个值传递给 connect()send() 方法。

// receivingLC is in http://www.domain.com/receiving.swf
receivingLC.connect('myConnection');

// sendingLC is in http://www.domain.com/sending.swf
// myMethod() is defined in sending.swf
sendingLC.send('myConnection', 'myMethod');

 

 

 

 

ActionScript 3.0 中创建的 LocalConnection 对象可以与 ActionScript 1.0 或 2.0 中创建的 LocalConnection 对象通信。反之亦然:ActionScript 1.0 或 2.0 中创建的 LocalConnection 对象可以与 ActionScript 3.0 中创建的 LocalConnection 对象通信。Flash Player 可自动处理不同版本 LocalConnection 对象间的通信。

若要了解如何使用 LocalConnection 对象在两个 文件之间进行通信,了解每个文件中使用的命令非常有用。一个 文件被称为发送方 文件;此文件包含要调用的方法。发送方 文件必须包含一个 LocalConnection 对象和对 send() 方法的调用。另一个 文件被称为接收方 文件;此文件为调用方法的文件。接收方 文件必须包含另一个 LocalConnection 对象和对 connect() 方法的调用。

send()connect() 的使用将有所不同,这取决于 文件是在同一个域中、在具有可预知域名的不同域中还是在具有不可预知域名(即动态域名)的不同域中。下文将说明这三种不同的情况,并针对每种情况分别提供代码示例。

同一个域。这是使用 LocalConnection 对象最简单的情况,它只允许在位于同一个域中的 LocalConnection 对象间通信,这是因为默认情况下,应用程序允许同域通信。当同一个域中的两个 文件通信时,无需实施任何特殊的安全措施,而只需将 connectionName 参数的同一个值传递给 connect()send() 方法。

 

AS3的connect()方法已经没有返回值了,那么想在连接失败的时候尝试其它连接就只能通过捕获ArgumentError。

varconn:LocalConnection=newLocalConnection();
varid:int=1;
while(true){
try{
conn.connect(String(id));
break;
}catch(e:ArgumentError){
id ;
}
}

 

 

相关文章
|
弹性计算 Java PHP
新手用户注册阿里云账号、实名认证、购买云服务器详细教程(图文教程)
在我们购买阿里云服务器等云产品之前,首先要做的就是注册账号并完成实名认证,之后才能购买阿里云服务器等各种云产品,购买之前如果碰到有最新优惠券或代金券可以领取,在购买过程中还可以使用优惠券或者代金券抵扣订单金额,减少购买成本。下面为大家以图文形式展示一下新手用户注册阿里云账号、实名认证、购买云服务器详细教程。
2866 0
新手用户注册阿里云账号、实名认证、购买云服务器详细教程(图文教程)
|
运维 Kubernetes 监控
阿里PB级Kubernetes日志平台建设实践
将在QCon上分享的《阿里PB级Kubernetes日志平台建设实践》整理出来,分享给大家。
17238 0
|
数据采集 算法 Java
库调多了 都忘了最基础的概念 - 进程 / 线程篇
库调多了 都忘了最基础的概念 - 进程 / 线程篇
199 0
库调多了 都忘了最基础的概念 - 进程 / 线程篇
ThinkPHP5使用include多次引入文件传入变量问题
ThinkPHP5使用include多次引入文件传入变量问题
343 0
|
安全 数据安全/隐私保护
全球互联网用户32亿 数据记录泄露36亿
本文讲的是全球互联网用户32亿 数据记录泄露36亿,金雅拓(Gemalto)泄露等级指数报告中给出的数据显示,过去一年里,全球共发生1673起数据泄露事件,导致7.07亿份数据记录泄露。
1662 0
|
程序员 C++
《深入理解C++11:C++ 11新特性解析与应用》——第3章 通用为本,专用为末 3.1 继承构造函数
本节书摘来自华章计算机《深入理解C++11:C++ 11新特性解析与应用》一书中的第3章,第3.1节,作者 IBM XL编译器中国开发团队,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1486 0
|
Linux Shell 开发工具
Deepgreen数据库安装配置详解
可能很多朋友并不是很了解Deepgreen,Deepgreen是大规模并行数据库,他做为Greenplum的升级版,在原Greenplum基础上优化改进并添加了很多的功能,他也是MPP(大规模并行数据库),shared-nothing架构,在数据仓库和数据分析计算领域的前景不可小觑。
7281 0