用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: 正在从服务器检索数据...
正在从服务器检索数据...
顶级 

Namespace  - AS3

顶级
public final class Namespace
继承Namespace Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

Namespace 类包含用于定义和使用命名空间的方法和属性。使用命名空间有以下三种方案:
  • XML 对象的命名空间 命名空间将命名空间的前缀与标识命名空间的统一资源标识符 (URI) 关联。前缀是字符串,用于在 XML 对象中引用命名空间。如果未定义前缀,则将 XML 转换为字符串时,将自动生成前缀。
  • 用于区分方法的命名空间 命名空间可以区分具有相同名称的方法从而执行不同任务。如果两种方法具有相同的名称,但具有不同的命名空间,则这两种方法可以执行不同的任务。
  • 用于访问控制的命名空间 命名空间可用于控制对类中的一组属性和方法的访问。如果将属性和方法置于私有命名空间内,则对该命名空间无访问权限的所有代码将无法访问这些属性和方法。可以将访问权限授予一组属性和方法,方法是将该命名空间传递给其他类、方法或函数。

因为每种形式接受不同的参数,所以此类显示两种形式的构造函数方法。

此类(与 XML、XMLList 和 QName 类一起)可实现强大的 XML 处理标准,该标准在 ECMAScript for XML (E4X) 规范(ECMA-357 第 2 版)中定义。

查看示例

了解详细信息

相关 API 元素



公共属性
 属性由以下参数定义
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  prefix : String
命名空间的前缀。
Namespace
  uri : String
命名空间的统一资源标识符 (URI)。
Namespace
公共方法
 方法由以下参数定义
  
Namespace(prefixValue:*, uriValue:*)
根据 prefixValue 和 uriValue 参数值创建 Namespace 对象。
Namespace
  
Namespace(uriValue:*)
创建 Namespace 对象。
Namespace
 Inherited
表示对象是否已经定义了指定的属性。
Object
 Inherited
表示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
表示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。
Object
  
等效于 Namespace.uri 属性。
Namespace
  
返回指定对象的 URI 值。
Namespace
属性详细信息

prefix

属性
prefix:String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

命名空间的前缀。



实现
    public function get prefix():String
    public function set prefix(value:String):void

uri

属性 
uri:String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

命名空间的统一资源标识符 (URI)。



实现
    public function get uri():String
    public function set uri(value:String):void
构造函数详细信息

Namespace

()构造函数
public function Namespace(prefixValue:*, uriValue:*)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

根据 prefixValueuriValue 参数值创建 Namespace 对象。此构造函数需要这两个参数。

prefixValue 参数的值分配给了 prefix 属性,如下所示:

  • 如果传递了 undefined,则 prefix 将设置为 undefined
  • 如果该值为 isXMLName() 函数确定的有效 XML 名称,则将其转换为字符串并分配给 prefix 属性。
  • 如果该值不是有效的 XML 名称,则将 prefix 属性设置为 undefined

uriValue 参数的值分配给了 uri 属性,如下所示:

  • 如果已传递 QName 对象,则 uri 属性将设置为 QName 对象的 uri 属性的值。
  • 否则,uriValue 参数将转换为字符串并分配给 uri 属性。

注意:因为每种形式接受不同的参数,所以此类显示两个构造函数方法项。根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。ActionScript 3.0 不支持方法或构造函数重载。

参数
prefixValue:* — 用于命名空间的前缀。
 
uriValue:* — 命名空间的统一资源标识符 (URI)。

Namespace

()构造函数 
public function Namespace(uriValue:*)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

创建 Namespace 对象。分配给新 Namespace 对象的 uriprefix 属性的值取决于传递给 uriValue 参数的值的类型:

  • 如果未传递任何值,则 prefixuri 属性将设置为空字符串。
  • 如果值为 Namespace 对象,则将创建该对象的一个副本。
  • 如果值为 QName 对象,则将 uri 属性设置为 QName 对象的 uri 属性。

注意:因为每种形式接受不同的参数,所以此类显示两个构造函数项。根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。ActionScript 3.0 不支持方法或构造函数重载。

参数
uriValue:* — 命名空间的统一资源标识符 (URI)。
方法详细信息

toString

()方法
AS3 function toString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

等效于 Namespace.uri 属性。

返回
String — 命名空间的统一资源标识符 (URI)(采用字符串形式)。

valueOf

()方法 
AS3 function valueOf():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

返回指定对象的 URI 值。

返回
String — 命名空间的统一资源标识符 (URI)(采用字符串形式)。
NamespaceExample.as

下面的示例说明如何使用 XML 对象中定义的命名空间。这是由以下步骤完成的:
  1. 此示例定义了 3 个 Namespace 对象,每个都有一个定义命名空间的唯一 URI。
  2. 此示例定义了名为 myXML 的 XML 变量并将其分配给 getRSS() 的返回值。getRSS() 方法定义了一个包含多个命名空间的 XML 对象,并返回该 XML 对象。
  3. 此示例声明并计算 Array 变量,方法是调用 parseRSS() 方法,并将 myXML 传递给该方法。在 parseRSS() 中,将默认的 XML 命名空间定义为 rss,此示例还定义了一个 XMLList 变量,方法是分配 myXMLitem 对象列表。创建一个数组,并用 myXML.item 中的各个节点填充。然后返回数组。
  4. 将输出数组中的元素,方法是使用 for 循环并三次调用 trace()
package {
    import flash.display.Sprite;

    public class NamespaceExample extends Sprite {
        private var rss:Namespace = new Namespace("http://purl.org/rss/1.0/");
        private var rdf:Namespace = new Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
        private var dc:Namespace  = new Namespace("http://purl.org/dc/elements/1.1/");

        public function NamespaceExample() {
            var myXML:XML = getRSS();
            var rssItems:Array = parseRSS(myXML);
            
            var len:uint = rssItems.length;
            for (var i:uint; i < len; i++) {
                trace(rssItems[i].title);
                trace(rssItems[i].creator);
                trace(rssItems[i].date);
                // Adobe Flash Developer Center
                // Adobe
                // 2005-08-08
                // Flex Developer Center
                // Adobe
                // 2005-10-16                
            }
        }
        
        private function parseRSS(rssXML:XML):Array {
            default xml namespace = rss;

            var items:XMLList = rssXML.item;

            var arr:Array = new Array();            
            var len:uint = items.length();
            for (var i:uint; i < len; i++) {
                arr.push({title:items[i].title, creator:items[i].dc::creator, date:items[i].dc::date});
            }
            
            return arr;
        }

        private function getRSS():XML {
            var myXML:XML =  <rdf:RDF
              xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
              xmlns="http://purl.org/rss/1.0/"
              xmlns:dc="http://purl.org/dc/elements/1.1/"
            >
              <channel rdf:about="http://www.xml.com/cs/xml/query/q/19">
                <title>Test RSS</title>
                <link>http://www.adobe.com/</link>
                <description>This is a test RSS document.</description>
                <language>en-us</language>
                <items>
                  <rdf:Seq>
                <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/>
                <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/>
                  </rdf:Seq>
                </items>
              </channel>
              <item rdf:about="http://www.adobe.com/devnet/flash/">
                <title>Adobe Flash Developer Center</title>
                <link>http://www.adobe.com/devnet/flash/</link>
                <description>Welcome to the Flash Developer Center</description>
                <dc:creator>Adobe</dc:creator>
                <dc:date>2005-08-08</dc:date>    
              </item>
              <item rdf:about="http://www.adobe.com/devnet/flex/">
                <title>Flex Developer Center</title>
                <link>http://www.adobe.com/devnet/flex/</link>
                <description>Welcome to the Flex Developer Center</description>
                <dc:creator>Adobe</dc:creator>
                <dc:date>2005-10-16</dc:date>    
              </item>
            </rdf:RDF>;
            
            return myXML;
        }
    }
}
Namespace_2_Example.as

下面的示例说明如何使用命名空间区分具有相同名称却执行不同任务的方法。在本示例中,3 个名为 hello() 的方法分别位于不同的命名空间中,调用每个方法时将返回不同的字符串。
package {

    import flash.display.Sprite;

    public class Namespace_2_Example extends Sprite {    
        public function Namespace_2_Example() {
            var vocab:MultilingualVocabulary = new MultilingualVocabulary();

            trace(vocab.hello());    // hello
            
            var languages:Array = vocab.getLanguages();
            
            for (var i:uint; i < languages.length; i++) {
                var ns:Namespace = languages[i];
                if (ns != null) {
                    trace(ns.toString() + ": " + vocab.ns::hello());
                    // hello
                    // MultilingualVocabulary:Hawaiian: aloha
                    // MultilingualVocabulary:French: bon jour
                }
            }
        }
    }    
}

class MultilingualVocabulary {
    public namespace French;
    public namespace Hawaiian;
    private var languages:Array;

    public function MultilingualVocabulary() {
        languages = new Array(Hawaiian, French);
    }
        
    public function hello():String { 
        return "hello";
    }

    Hawaiian function hello():String {
        return "aloha";
    }

    French function hello():String { 
        return "bon jour";
    }
        
    public function getLanguages():Array {
        return languages;
    }
}
Namespace_3_Example.as

下面的示例使用命名空间名称选择相应的变量值。它说明如何在变量中存储命名空间值,并使用该变量引用该命名空间中的对象。

此示例为矩形按钮定义对应于鼠标状态的命名空间和颜色。每次绘制该按钮,此示例都会应用相应的颜色(鼠标光标在按钮外为红色;悬停在上方为黄色;按下按钮为白色),方法是引用 bgcolor 变量(针对相应的命名空间 (outoverdown)。

package {
    import flash.display.Sprite;
  
    public class Namespace_3_Example extends Sprite {     
        public function Namespace_3_Example() {
            addChild(new StateButton("Press Me."));
        }
    }
}

import flash.display.Sprite;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;

class StateButton extends Sprite{
    private namespace out;
    private namespace over;
    private namespace down;
    private var label:TextField;
    private var labelTxt:String;
    private var ns:Namespace;
    out var bgColor:Number = 0xFF0000;
    over var bgColor:Number = 0xFFFF00;
    down var bgColor:Number = 0xFFFFFF;
      
    public function StateButton(str:String) {
        buttonMode = true;
        labelTxt = str;
        ns = out;
        draw();
        addLabel();
        addListeners();
    }

    private function addLabel():void {
        label = new TextField();
        label.text = labelTxt;
        label.width = 50;
        label.height = 20;
        label.mouseEnabled = false;
        addChild(label);
    }
      
    private function addListeners():void {
        addEventListener(MouseEvent.MOUSE_UP, mouseOverHandler);
        addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
        addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
        addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
    }
 
    private function mouseOutHandler(e:Event):void {
        ns = out;
        draw();
    }
 
    private function mouseOverHandler(e:Event):void {
        ns = over;
        draw();
    }
 
    private function mouseDownHandler(e:Event):void {
        ns = down;
        draw();
    }
 
    private function draw():void {
        this.graphics.clear();
        this.graphics.beginFill(ns::bgColor);
        this.graphics.drawRect(0, 0, 60, 20);
    }
} 




[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。