The flash.net package contains package-level functions for opening a new browser window, sending a URL request to a server, and dealing with class aliases.
公共方法
 函数定义方
  
getClassByAlias(aliasName:String):Class
查找一个类,这个类先前具有一个通过调用 registerClassAlias() 方法进行注册的别名。
flash.net
  
navigateToURL(request:URLRequest, window:String = null):void
在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。
flash.net
  
registerClassAlias(aliasName:String, classObject:Class):void
当以 Action Message Format (AMF) 对一个对象进行编码时,保留该对象的类(类型)。
flash.net
  
向服务器发送一个 URL 请求,但忽略任何响应。
flash.net
函数详细信息
getClassByAlias()函数
function getClassByAlias(aliasName:String):Class

查找一个类,这个类先前具有一个通过调用 registerClassAlias() 方法进行注册的别名。

此方法不与 flash.utils.getDefinitionByName() 方法进行交互。

参数

aliasName:String — 要查找的别名。

返回
Class — 与给定别名相关联的类。如果未找到,将引发异常。

引发
ReferenceError — 未注册别名。

另请参见

navigateToURL()函数 
function navigateToURL(request:URLRequest, window:String = null):void

在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。

注意:对于在浏览器中运行的本地 内容,只有在 SWF 文件和包含该文件的网页(如果有)位于受信任的本地安全沙箱时,才允许进行指定“javascript:”伪协议的 navigateToURL() 方法调用(通过作为第一个参数传递的 URLRequest 对象)。一些浏览器不支持通过 navigateToURL() 方法使用 javascript 协议。而应考虑使用 ExternalInterface API 的 call() 方法在包含该内容的 HTML 页中调用 JavaScript 方法。

有关详细信息,请参阅以下部分:

参数

request:URLRequest — URLRequest 对象,指定要导航到哪个 URL。
 
window:String (default = null) — 浏览器窗口或 HTML 帧,其中显示 request 参数指示的文档。可以输入某个特定窗口的名称,或使用以下值之一:
  • "_self" 指定当前窗口中的当前帧。
  • "_blank" 指定一个新窗口。
  • "_parent" 指定当前帧的父级。
  • "_top" 指定当前窗口中的顶级帧。

如果没有为此参数指定值,将创建一个新的空窗口。在独立播放器中,可以指定新的 ("_blank") 窗口,也可以指定已命名的窗口。其它值不适用。

注意:如果在只能与本地文件系统内容交互的沙箱中运行的 SWF 文件中的代码调用 navigateToURL() 函数,并为 window 参数指定一个自定义窗口名称,该窗口名称将转换为一个随机名称。该名称的格式为 "_flashXXXXXXXX",其中每个 X 均代表一个随机的十六进制数字。在同一会话中(直到您关闭包含浏览器窗口),如果您再次调用该函数并为 window 参数指定同一名称,将使用同一个随机字符串。


引发
SecurityError — 在以下情况下,将引发此错误:
  • 本地不受信任的 SWF 文件可能无法与 Internet 进行通信。要避免这种情况,可将此 SWF 文件重新分类为只能与远程内容交互或受信任。
  • 导航操作试图评估伪 URL 的脚本编写,但包含文档(通常是浏览器中的一个 HTML 文档)来自您不具有访问权限的沙箱。要避免这种情况,可以在包含文档中指定 allowScriptAccess="always"
  • 如果 SWF 文件包含在已将 allowScriptAccess 设置为 "none""sameDomain" 的 HTML 页面中,而此 HTML 文件与 SWF 文件的域不匹配,将无法导航特殊窗口 "_self""_top""_parent"
  • 不能导航具有非默认名称的窗口,非默认名称来自位于 local-with-filesystem 沙箱中的 SWF 文件。

另请参见


示例

下例在一个新的浏览器窗口中打开 URL http://www.adobe.com,并将在 URLVariables 对象中所捕获的用户会话数据传递给 Web 服务器。
<html>
    <head>
      <script src="AIRAliases.js" />
      <script>
        function init() {
            var url = "http://www.adobe.com";
            var variables = new air.URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "Your Name";
            var request = new air.URLRequest(url);
            request.data = variables;
            try {            
                air.navigateToURL(request);
            }
            catch (e) {
                // handle error here
            }
        }
      </script>
    </head>
    <body onload='init()'>
    </body>
</html>
registerClassAlias()函数 
function registerClassAlias(aliasName:String, classObject:Class):void

当以 Action Message Format (AMF) 对一个对象进行编码时,保留该对象的类(类型)。将对象编码为 AMF 时,该函数将保存该对象的类的别名,以便在解码对象时可以恢复该类。如果编码上下文没有为对象的类注册别名,该对象将被编码为一个匿名对象。同样,如果解码上下文注册了不同的别名,将为解码后的数据创建一个匿名对象。

LocalConnection、ByteArray、SharedObject、NetConnection 及 NetStream 均为将对象编码为 AMF 的类的示例。

编码和解码上下文不必对别名使用相同的类。它们可以主动地改变类,条件是目标类包含源类序列化的所有成员。

参数

aliasName:String — 要使用的别名。
 
classObject:Class — 与给定别名相关联的类。


引发
TypeError — 如果任一个参数为 null

另请参见


示例

此示例使用 registerClassAlias() 函数为 ExampleClass 注册一个别名 ( com.example.eg )。由于为类注册了别名,因此可以将对象作为 ExampleClass 的实例反序列化,且代码将输出 true。如果删除 registerClassAlias() 调用,则代码将输出 false
<html>
    <head>
      <script src="AIRAliases.js" />
      <script>
        function init() {
            registerClassAlias("com.example.eg", ExampleClass);
            var eg1 = new ExampleClass();
            var ba = new air.ByteArray();
            ba.writeObject(eg1);
            ba.position = 0;
            var eg2:* = ba.readObject();
            air.trace(eg2 is ExampleClass); // true
        }
    }
}

class ExampleClass {}
sendToURL()函数 
function sendToURL(request:URLRequest):void

向服务器发送一个 URL 请求,但忽略任何响应。

若要检查服务器响应,请改为使用 URLLoader.load() 方法。

在 Flash Player 9 及更高版本中,可以在包含 SWF 内容的 HTML 页中设置 objectembed 标签的 allowNetworking 参数来防止 SWF 文件使用此方法。

有关详细信息,请参阅 http://www.adobe.com/go/fp9_0_security_cn 上的 Flash Player 9 Security 白皮书。

参数

request:URLRequest — URLRequest 对象,指定要将数据发送到哪个 URL。


引发
SecurityError — 本地不受信任的 SWF 文件无法与 Internet 通信。要避免这种情况,可将此 SWF 文件重新分类为只能与远程内容交互或受信任。

另请参见


示例

下例将在 URLVariables 对象中捕获的用户会话数据传递到位于 http://www.yourDomain.com/application.jsp 的应用程序。
 <html>
    <head>
      <script src="AIRAliases.js" />
      <script>
        function init() {
            var url = "http://www.yourDomain.com/application.jsp";
            var variables = new air.URLVariables();
            variables.sessionId = new Date().getTime();
            variables.userLabel = "Your Name";

            var request = new air.URLRequest(url);
            request.data = variables;
            air.trace("air.sendToURL: " + request.url + "?" + request.data);
            try {
                air.sendToURL(request);
            }
            catch (e) {
                // handle error here
            }
        }
      </script>
    </head>
    <body onload='init()'>
    </body>
</html>