zoukankan      html  css  js  c++  java
  • as2 AVM1对象和as3对象的通信

    注意本人遇到的 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 ;
    }
    }

  • 相关阅读:
    Codeforces 834D The Bakery
    hdu 1394 Minimum Inversion Number
    Codeforces 837E Vasya's Function
    Codeforces 837D Round Subset
    Codeforces 825E Minimal Labels
    Codeforces 437D The Child and Zoo
    Codeforces 822D My pretty girl Noora
    Codeforces 799D Field expansion
    Codeforces 438D The Child and Sequence
    Codeforces Round #427 (Div. 2) Problem D Palindromic characteristics (Codeforces 835D)
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/1593006.html
Copyright © 2011-2022 走看看