패키지 | 최상위 레벨 |
클래스 | 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을 문자열로 변환하면 접두어가 자동으로 생성됩니다.
- 네임스페이스로 메서드 구별 네임스페이스를 통해 이름이 같지만 수행하는 작업이 다른 여러 메서드를 구별할 수 있습니다. 두 메서드의 이름이 같지만 네임스페이스가 다른 경우 각 메서드에서 다른 작업을 수행할 수 있습니다.
- 네임스페이스로 액세스 제어 네임스페이스를 사용하여 클래스의 속성 및 메서드 그룹에 대한 액세스를 제어할 수 있습니다. 속성 및 메서드를 전용 네임스페이스에 배치하면 해당 네임스페이스에 대한 액세스 권한이 없는 코드에서 이러한 속성이나 메서드에 액세스할 수 없습니다. 다른 클래스, 메서드 또는 함수에 네임스페이스를 전달하면 속성 및 메서드 그룹에 대한 액세스 권한을 부여할 수 있습니다.
이 클래스에는 서로 다른 매개 변수를 받는 두 가지 형태의 생성자 메서드가 있습니다.
이 클래스는 XML, XMLList 및 QName 클래스와 더불어 E4X(ECMAScript for XML) 사양(ECMA-357 버전 2)에 정의된 강력한 XML 처리 표준을 구현합니다.
추가 정보
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
prefix : String
네임스페이스의 접두어입니다. | Namespace | ||
uri : String
네임스페이스의 URI(Uniform Resource Identifier)입니다. | 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
속성에 할당됩니다.
참고: 이 클래스에는 서로 다른 매개 변수를 받는 두 가지 형태의 생성자 메서드 항목이 있습니다. 생성자는 전달된 인수의 유형과 개수에 따라 각 항목에서 설명하는 대로 다르게 동작합니다. ActionScript 3.0에서는 메서드 또는 생성자 오버로드가 지원되지 않습니다.
매개 변수prefixValue:* — 네임스페이스에 사용할 접두어입니다.
| |
uriValue:* — 네임스페이스의 URI(Uniform Resource Identifier)입니다.
|
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
속성으로 설정됩니다.
참고: 이 클래스에는 서로 다른 매개 변수를 받는 두 가지 형태의 생성자 항목이 있습니다. 생성자는 전달된 매개 변수의 유형과 개수에 따라 각 항목에서 설명하는 대로 다르게 동작합니다. ActionScript 3.0에서는 메서드 또는 생성자 오버로드가 지원되지 않습니다.
매개 변수uriValue:* — 네임스페이스의 URI(Uniform Resource Identifier)입니다.
|
toString | () | 메서드 |
valueOf | () | 메서드 |
- 네임스페이스를 정의하는 고유한 URI를 갖는 세 개의 Namespace 객체를 정의합니다.
- 이 예제에서는
myXML
이라는 XML 변수를 정의하고 이 변수를getRSS()
의 반환 값에 할당합니다.getRSS()
메서드는 여러 네임스페이스가 포함된 XML 객체를 정의하고 해당 XML 객체를 반환합니다. - 이 예제에서는
myXML
을 전달하고parseRSS()
메서드를 호출하여 Array 변수를 선언하고 평가합니다.parseRSS()
에서 기본 XML 네임스페이스는rss
로 정의됩니다. 이 예제에서는item
객체의 목록을myXML
에 할당하여 XMLList 변수를 정의합니다. 배열을 만들고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; } }
이 예제에서는 마우스 상태에 따라 반응하는 사각형 버튼의 네임스페이스와 색상을 정의합니다. 버튼을 그릴 때마다 해당 네임스페이스(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); } }
Tue Jun 12 2018, 03:17 PM Z