パッケージ | トップレベル |
クラス | public final class Namespace |
継承 | Namespace Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- XML オブジェクトの名前空間:名前空間により名前空間接頭辞と、名前空間を識別する URI(Uniform Resource Identifier)を関連付けます。接頭辞は、XML オブジェクト内の名前空間を参照する場合に使用されるストリングです。接頭辞が未定義の場合、XML がストリングに変換されたときに接頭辞が自動的に生成されます。
- メソッドを区別するための名前空間:名前空間により同名のメソッドを区別し、異なるタスクを実行できるようにします。2 つのメソッドの名前が同じでも、名前空間が異なる場合は、それぞれのメソッドで別のタスクを実行することができます。
- アクセス制御するための名前空間:名前空間を使用して、クラス内のプロパティとメソッドのグループへのアクセスを制御できるようにします。プロパティとメソッドをプライベートの名前空間に配置すると、その名前空間へのアクセス権を持たないコードからそれらのプロパティとメソッドにアクセスできなくなります。他のクラス、メソッド、または関数に名前空間を渡すことによって、プロパティとメソッドのグループへのアクセスを許可することができます。
このクラスは、2 つの形式のコンストラクターメソッドを示しています。それぞれの形式が異なるパラメーターを受け入れるからです。
XML、XMLList、および QName などのクラス同様、Namespace クラスには、ECMAScript for XML(E4X)仕様(ECMA-357 Edition 2)で定義されている強力な XML 処理規格が実装されています。
詳細
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
prefix : String
名前空間の接頭辞です。 | Namespace | ||
uri : String
名前空間の URI です。 | Namespace |
メソッド | 定義元 | ||
---|---|---|---|
prefixValue パラメーターと uriValue パラメーターの値に従って Namespace オブジェクトを作成します。 | Namespace | ||
Namespace オブジェクトを作成します。 | Namespace | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
Namespace.uri プロパティと同等です。 | Namespace | ||
指定されたオブジェクトの URI 値を返します。 | Namespace |
prefix | プロパティ |
uri | プロパティ |
Namespace | () | コンストラクター |
public function Namespace(prefixValue:*, uriValue:*)
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
prefixValue
パラメーターと uriValue
パラメーターの値に従って Namespace オブジェクトを作成します。このコンストラクターには両方のパラメーターが必要です。
prefixValue
パラメーターの値は、次のように prefix
プロパティに割り当てられます。
undefined
が渡された場合、prefix
はundefined
に設定されます。- 値が
isXMLName()
関数により有効な XML 名として判定された場合、この引数はストリングに変換されてprefix
プロパティに割り当てられます。 - 値が無効な XML 名の場合、
prefix
プロパティはundefined
に設定されます。
uriValue
パラメーターの値は、次のように uri
プロパティに割り当てられます。
- QName オブジェクトが渡された場合、
uri
プロパティは QName オブジェクトのuri
プロパティの値に設定されます。 - それ以外の場合、
uriValue
パラメーターはストリングに変換され、uri
プロパティに割り当てられます。
注意:このクラスは、2 つのコンストラクターメソッドを示しています。それぞれの形式が異なるパラメーターを受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。
パラメーターprefixValue:* — 名前空間に使用する接頭辞です。
| |
uriValue:* — 名前空間の URI です。
|
Namespace | () | コンストラクター |
public function Namespace(uriValue:*)
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
Namespace オブジェクトを作成します。新しい Namespace オブジェクトの uri
プロパティと prefix
プロパティに割り当てられる値は、uriValue
パラメーターに渡される値の型によって決まります。
- 値が渡されない場合、
prefix
プロパティとuri
プロパティは空のストリングに設定されます。 - 値が Namespace オブジェクトの場合、オブジェクトのコピーが作成されます。
- 値が QName オブジェクトの場合、
uri
プロパティは QName オブジェクトのuri
プロパティに設定されます。
注意:このクラスは、2 つのコンストラクター項目を示しています。それぞれの形式が異なるパラメーターを受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡されるパラメーターの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。
パラメーターuriValue:* — 名前空間の URI です。
|
toString | () | メソッド |
valueOf | () | メソッド |
- この例では 3 つの Namespace オブジェクトを定義します。各オブジェクトには、名前空間を定義する一意の URI を関連付けます。
myXML
という名前の XML 変数を定義し、これをgetRSS()
の戻り値に割り当てます。getRSS()
メソッドは、いくつかの名前空間を持つ XML オブジェクトを定義し、この XML オブジェクトを返します。- この例では、
parseRSS()
メソッドにmyXML
を渡し、そのメソッドを呼び出すことで、Array 型の変数を宣言して評価しています。parseRSS()
では、デフォルトの XML 名前空間としてrss
が定義されています。またこの例ではitem
オブジェクト(myXML
内にある)のリストを割り当てて XMLList 変数が定義されています。配列が作成され、myXML.item
内の様々なノードが値として設定されます。その後、配列が返されます。 - 配列内のエレメントは、
for
ループを使用し、trace()
を 3 回呼び出すことで出力されます。
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; } }
この例は、長方形のボタンについてのマウス状態に対応する名前空間と色を定義します。ボタンを描画するたびに、bgcolor
変数を参照して、適切な色(マウスが置かれていない out 状態では赤、マウスが上に置かれている over 状態では黄色、マウスボタンが押されている down 状態では白)を適用します。変数は、対応する名前空間(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); } }
Tue Jun 12 2018, 10:34 AM Z