パッケージトップレベル
クラスpublic final class Namespace
継承Namespace Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

Namespace クラスには、名前空間を定義して操作するためのメソッドとプロパティが含まれています。名前空間を使用するシナリオには、次の 3 つがあります。

このクラスは、2 つの形式のコンストラクタメソッドを示しています。それぞれの形式が異なるパラメータを受け入れるからです。

XML、XMLList、および QName などのクラス同様、Namespace クラスには、ECMAScript for XML(E4X)仕様(ECMA-357 Edition 2)で定義されている強力な XML 処理規格が実装されています。

例を表示

関連項目

XML
XMLList
QName
ECMAScript for XML (E4X) specification (ECMA-357 edition 2)
Using XML namespaces


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  prefix : String
名前空間の接頭辞です。
Namespace
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  uri : String
名前空間の URI です。
Namespace
パブリックメソッド
 メソッド定義元
  
Namespace(uriValue:*)
Namespace オブジェクトを作成します。
Namespace
  
Namespace(prefixValue:*, uriValue:*)
prefixValue パラメータと uriValue パラメータの値に従って Namespace オブジェクトを作成します。
Namespace
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
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(uriValue:*)

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

Namespace オブジェクトを作成します。新しい Namespace オブジェクトの uri プロパティと prefix プロパティに割り当てられる値は、uriValue パラメータに渡される値の型によって決まります。

メモ : このクラスは、2 つのコンストラクタ項目を示しています。それぞれの形式が異なるパラメータを受け入れるためです。コンストラクタの動作は、各項目で詳細を示すように、渡されるパラメータの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクタのオーバーロードをサポートしていません。

パラメータ
uriValue:* — 名前空間の URI です。
Namespace()コンストラクタ 
public function Namespace(prefixValue:*, uriValue:*)

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

prefixValue パラメータと uriValue パラメータの値に従って Namespace オブジェクトを作成します。このコンストラクタには両方のパラメータが必要です。

prefixValue パラメータの値は、次のように prefix プロパティに割り当てられます。

uriValue パラメータの値は、次のように uri プロパティに割り当てられます。

メモ : このクラスは、2 つのコンストラクタメソッドを示しています。それぞれの形式が異なるパラメータを受け入れるためです。コンストラクタの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクタのオーバーロードをサポートしていません。

パラメータ
prefixValue:* — 名前空間に使用する接頭辞です。
 
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. この例では、parseRSS() メソッドに myXML を渡し、そのメソッドを呼び出すことで、Array 型の変数を宣言して評価しています。parseRSS() では、デフォルトの XML 名前空間として rss が定義されています。またこの例では item オブジェクト(myXML 内にある)のリストを割り当てて XMLList 変数が定義されています。配列が作成され、myXML.item 内の様々なノードが値として設定されます。 その後、配列が返されます。
  4. 配列内のエレメントは、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;
        }
    }
}
Namespace_2_Example.as

次の例は、名前空間を使用して、名前が同じでも実行するタスクが異なるメソッドを区別する方法を示しています。この例では、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;
    }
}
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);
    }
} 




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/Namespace.html