패키지최상위
클래스public final class Namespace
상속Namespace Inheritance Object

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

Namespace 클래스에는 네임스페이스를 정의하고 사용하는 메서드 및 속성이 들어 있습니다. 네임스페이스를 사용하는 데는 세 가지 시나리오가 있습니다.

이 클래스에는 서로 다른 매개 변수를 받는 두 가지 형태의 생성자 메서드가 있습니다.

이 클래스는 XML, XMLList 및 QName 클래스와 더불어 E4X(ECMAScript for XML) 사양(ECMA-357 버전 2)에 정의된 강력한 XML 처리 표준을 구현합니다.

예제를 통해 확인하십시오.

참고 사항

XML
XMLList
QName
ECMAScript for XML (E4X) specification (ECMA-357 edition 2)
XML 네임스페이스 사용


Public 속성
 속성다음에 의해 정의됨
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  prefix : String
네임스페이스의 접두어입니다.
Namespace
 Inheritedprototype : Object
[static] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  uri : String
네임스페이스의 URI(Uniform Resource Identifier)입니다.
Namespace
Public 메서드
 메서드다음에 의해 정의됨
  
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  [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(Uniform Resource Identifier)입니다.


구현
    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 객체의 uriprefix 속성에 할당되는 값은 uriValue 매개 변수에 전달된 값의 유형에 따라 다릅니다.

참고: 이 클래스에는 서로 다른 매개 변수를 받는 두 가지 형태의 생성자 항목이 있습니다. 생성자는 전달된 매개 변수의 유형과 개수에 따라 각 항목에서 설명하는 대로 다르게 동작합니다. ActionScript 3.0에서는 메서드 또는 생성자 오버로드가 지원되지 않습니다.

매개 변수
uriValue:* — 네임스페이스의 URI(Uniform Resource Identifier)입니다.
Namespace()생성자 
public function Namespace(prefixValue:*, uriValue:*)

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

prefixValueuriValue 매개 변수의 값에 따라 Namespace 객체를 만듭니다. 이 생성자에는 두 매개 변수가 모두 필요합니다.

prefixValue 매개 변수의 값은 다음과 같이 prefix 속성에 할당됩니다.

uriValue 매개 변수의 값은 다음과 같이 uri 속성에 할당됩니다.

참고: 이 클래스에는 서로 다른 매개 변수를 받는 두 가지 형태의 생성자 메서드 항목이 있습니다. 생성자는 전달된 인수의 유형과 개수에 따라 각 항목에서 설명하는 대로 다르게 동작합니다. ActionScript 3.0에서는 메서드 또는 생성자 오버로드가 지원되지 않습니다.

매개 변수
prefixValue:* — 네임스페이스에 사용할 접두어입니다.
 
uriValue:* — 네임스페이스의 URI(Uniform Resource Identifier)입니다.
메서드 정보
toString()메서드
AS3 function toString():String

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

Namespace.uri 속성과 같습니다.

반환값
String — 문자열로 나타낸 네임스페이스의 URI(Uniform Resource Identifier)입니다.
valueOf()메서드 
AS3 function valueOf():String

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

지정된 객체의 URI 값을 반환합니다.

반환값
String — 문자열로 나타낸 네임스페이스의 URI(Uniform Resource Identifier)입니다.
예제 예제 사용 방법
NamespaceExample.as

다음 예제에서는 XML 객체에 정의된 네임스페이스를 사용하는 방법을 보여 줍니다. 이는 다음 단계로 이루어집니다.
  1. 네임스페이스를 정의하는 고유한 URI를 갖는 세 개의 Namespace 객체를 정의합니다.
  2. 이 예제에서는 myXML이라는 XML 변수를 정의하고 이 변수를 getRSS()의 반환 값에 할당합니다. getRSS() 메서드는 여러 네임스페이스가 포함된 XML 객체를 정의하고 해당 XML 객체를 반환합니다.
  3. 이 예제에서는 myXML을 전달하고 parseRSS() 메서드를 호출하여 Array 변수를 선언하고 평가합니다. parseRSS()에서 기본 XML 네임스페이스는 rss로 정의됩니다. 이 예제에서는 item 객체의 목록을 myXML에 할당하여 XMLList 변수를 정의합니다. 배열을 만들고 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

다음 예제에서는 네임스페이스를 통해 이름이 같지만 수행하는 작업이 다른 여러 메서드를 구별하는 방법을 보여 줍니다. 이 예제에서는 세 개의 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

다음 예제에서는 네임스페이스 이름을 사용하여 적절한 변수 값을 선택합니다. 이 예제에서는 네임스페이스 값을 변수에 저장하고 이 변수를 사용하여 해당 네임스페이스 내의 객체를 참조하는 방법을 보여 줍니다.

이 예제에서는 마우스 상태에 따라 반응하는 사각형 버튼의 네임스페이스와 색상을 정의합니다. 버튼을 그릴 때마다 해당 네임스페이스(out, over, down)의 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_kr/ActionScriptLangRefV3/Namespace.html