| パッケージ | トップレベル |
| public final class Namespace | |
| 継承 | Namespace Object |
このクラスは、2 つの形式のコンストラクタメソッドを示しています。それぞれの形式が異なるパラメータを受け入れるためです。
XML、XMLList、および QName などのクラス同様、Namespace クラスには、ECMAScript for XML (E4X) 仕様 (ECMA-357 Edition 2) で定義されている強力な XML 処理規格が実装されています。
関連項目
| プロパティ | 定義 | ||
|---|---|---|---|
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| prefix : String
名前空間の接頭辞です。
| Namespace | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| uri : String
名前空間の URI です。
| Namespace | ||
| メソッド | 定義 | ||
|---|---|---|---|
| Namespace(uriValue:*)
Namespace オブジェクトを作成します。
| Namespace | ||
Namespace(prefixValue:*, uriValue:*)
prefixValue パラメータと uriValue パラメータの値に従って Namespace オブジェクトを作成します。 | Namespace | ||
![]() | hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() | isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() | propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
| Object | |
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
toString():String
Namespace.uri プロパティと同等です。 | Namespace | ||
| valueOf():String
指定されたオブジェクトの URI 値を返します。
| Namespace | ||
| prefix | プロパティ |
prefix:String [read-write]名前空間の接頭辞です。
実装 public function get prefix():String
public function set prefix(value:String):void
| uri | プロパティ |
uri:String [read-write]名前空間の URI です。
実装 public function get uri():String
public function set uri(value:String):void
| Namespace | () | コンストラクタ |
public 関数 Namespace(uriValue:*)
Namespace オブジェクトを作成します。新しい Namespace オブジェクトの uri プロパティと prefix プロパティに割り当てられる値は、uriValue パラメータに渡される値の型によって決まります。
prefix プロパティと uri プロパティは空のストリングに設定されます。uri プロパティは QName オブジェクトの uri プロパティに設定されます。メモ:このクラスは、2 つのコンストラクタ項目を示しています。それぞれの形式が異なるパラメータを受け入れるためです。コンストラクタの動作は、各項目で詳細を示すように、渡されるパラメータの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクタのオーバーロードをサポートしていません。
パラメータuriValue:* — 名前空間の URI です。
|
| Namespace | () | コンストラクタ |
public 関数 Namespace(prefixValue:*, uriValue:*)
prefixValue パラメータと uriValue パラメータの値に従って Namespace オブジェクトを作成します。このコンストラクタには両方のパラメータが必要です。
prefixValue パラメータの値は、次のように prefix プロパティに割り当てられます。
undefined が渡された場合、prefix は undefined に設定されます。isXMLName() 関数で有効として判断される XML 名の場合、この引数はストリングに変換されて prefix プロパティに割り当てられます。prefix プロパティは undefined に設定されます。uriValue パラメータの値は、次のように uri プロパティに割り当てられます。
uri プロパティは QName オブジェクトの uri プロパティの値に設定されます。uriValue パラメータはストリングに変換され、uri プロパティに割り当てられます。メモ:このクラスは、2 つのコンストラクタメソッドを示しています。それぞれの形式が異なるパラメータを受け入れるためです。コンストラクタの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクタのオーバーロードをサポートしていません。
パラメータprefixValue:* — 名前空間に使用する接頭辞です。
|
|
uriValue:* — 名前空間の URI です。
|
| toString | () | メソッド |
| valueOf | () | メソッド |
myXML という名前の XML 変数を定義し、これをgetRSS() の戻り値に割り当てます。
getRSS() メソッドは、いくつかの名前空間を持つ XML オブジェクトを定義し、
この XML オブジェクトを返します。myXML を渡して parseRSS() メソッドを呼び出すことによって、
Array 変数を宣言して評価します。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() という名前の 3 つのメソッドが
別々の名前空間に存在しており、呼び出されたときにそれぞれが異なるストリングを返します。
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;
}
}
この例は、長方形のボタンについてのマウス状態に対応する
名前空間と色を定義します。ボタンが描画されるたびに、対応する名前空間
(out、over、down) の bgcolor 変数を参照することによって、
適切な色 (マウスが置かれていないときは赤、マウスが上に置かれている状態では黄色、マウスボタンが押されている状態では白) が適用されます。
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);
}
}