| 包 | 顶级 |
| 类 | public final class Namespace |
| 继承 | Namespace Object |
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
因为每种形式接受不同的参数,所以此类显示两种形式的构造函数方法。
此类(与 XML、XMLList 和 QName 类一起)可实现强大的 XML 处理标准,该标准在 XML (E4X) 规范(ECMA-357 第 2 版)的 ECMAScript 中定义。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | |
| prefix : String
命名空间的前缀。
| Namespace | ||
![]() | prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object | |
| uri : String
命名空间的统一资源标识符 (URI)。
| Namespace | ||
| 方法 | 定义方 | ||
|---|---|---|---|
|
创建 Namespace 对象。
| Namespace | ||
|
根据 prefixValue 和 uriValue 参数值创建 Namespace 对象。
| Namespace | ||
![]() |
指示对象是否已经定义了指定的属性。
| Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | |
![]() |
指示指定的属性是否存在、是否可枚举。
| Object | |
![]() |
设置循环操作动态属性的可用性。
| Object | |
|
等效于 Namespace.uri 属性。
| Namespace | ||
|
返回指定对象的 URI 值。
| Namespace | ||
| prefix | 属性 |
prefix:String [read-write]
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
命名空间的前缀。
public function get prefix():String
public function set prefix(value:String):void
| uri | 属性 |
uri:String [read-write]
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
命名空间的统一资源标识符 (URI)。
public function get uri():String
public function set uri(value:String):void
| Namespace | () | 构造函数 |
public function Namespace(uriValue:*)
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
创建 Namespace 对象。 分配给新 Namespace 对象的 uri 和 prefix 属性的值取决于传递给 uriValue 参数的值的类型:
prefix 和 uri 属性将设置为空字符串。uri 属性设置为 QName 对象的 uri 属性。注意:因为每种形式接受不同的参数,所以此类显示两个构造函数项。 根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。 ActionScript 3.0 不支持方法或构造函数重载。
参数uriValue:* — 命名空间的统一资源标识符 (URI)。
|
| Namespace | () | 构造函数 |
public function Namespace(prefixValue:*, uriValue:*)
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
根据 prefixValue 和 uriValue 参数值创建 Namespace 对象。 此构造函数需要这两个参数。
prefixValue 参数的值分配给了 prefix 属性,如下所示:
undefined,则 prefix 将设置为 undefined。isXMLName() 函数确定的有效 XML 名称,则将其转换为字符串并分配给 prefix 属性。prefix 属性设置为 undefined。uriValue 参数的值分配给了 uri 属性,如下所示:
uri 属性将设置为 QName 对象的 uri 属性的值。uriValue 参数将转换为字符串并分配给 uri 属性。注意:因为每种形式接受不同的参数,所以此类显示两个构造函数方法项。 根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。 ActionScript 3.0 不支持方法或构造函数重载。
参数prefixValue:* — 用于命名空间的前缀。
|
|
uriValue:* — 命名空间的统一资源标识符 (URI)。
|
| toString | () | 方法 |
AS3 function toString():String
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
等效于 Namespace.uri 属性。
String — 命名空间的统一资源标识符 (URI)(采用字符串形式)。
|
| valueOf | () | 方法 |
AS3 function valueOf():String
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
返回指定对象的 URI 值。
返回String — 命名空间的统一资源标识符 (URI)(采用字符串形式)。
|
myXML 的 XML 变量并将其分配给 getRSS() 的返回值。 getRSS() 方法定义了一个包含多个命名空间的 XML 对象,并返回该 XML 对象。parseRSS() 方法,并将 myXML 传递给该方法。 在 parseRSS() 中,将默认的 XML 命名空间定义为 rss,此示例还定义了一个 XMLList 变量,方法是分配 myXML 中 item 对象列表。 创建一个数组,并用 myXML.item 中的各个节点填充。 然后返回数组。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;
}
}
}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;
}
}此示例为矩形按钮定义对应于鼠标状态的命名空间和颜色。 每次绘制该按钮,此示例都会应用相应的颜色(鼠标光标在按钮外为红色;悬停在上方为黄色;按下按钮为白色),方法是引用 bgcolor 变量(针对相应的命名空间 (out、over、down)。
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);
}
}
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/Namespace.html