Pakiet | Najwyższy poziom |
Klasa | public final class Namespace |
Dziedziczenie | Namespace Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Przestrzenie nazw obiektów XML Przestrzenie nazw kojarzą przedrostek przestrzeni nazw z identyfikatorem URI (Uniform Resource Identifier) określającym przestrzeń nazw. Przedrostek stanowi ciąg znaków będący odwołaniem do przestrzeni nazw w obiekcie XML. Jeśli przedrostek jest niezdefiniowany, podczas konwersji obiektu XML na ciąg znaków przedrostek zostaje automatycznie wygenerowany.
- Przestrzenie nazw służące rozróżnianiu metod Za pomocą przestrzeni nazw można rozróżniać metody określone tą sama nazwą, a wykonujące różne zadania. Dwie metody o tej samej nazwie, ale różnych przestrzeniach nazw, mogą wykonywać różne zadania.
- Przestrzenie nazw kontroli dostępu Za pomocą przestrzeni nazw można kontrolować dostęp dla grup właściwości i metod danej klasy. Umieszczenie właściwości i metod w prywatnej przestrzeni nazw spowoduje, że nie będą one dostępne dla żadnego kodu, który nie będzie posiadał dostępu do tej przestrzeni nazw. Przekazanie przestrzeni nazw innym klasom, metodom czy funkcjom spowoduje nadanie dostępu grupom właściwości i metod to tej przestrzeni nazw.
Ta klasa przedstawia dwa formularze dla metod konstruktora, ponieważ każdy formularz wymaga różnych parametrów.
Ta klasa (wraz z klasami XML, XMLList oraz QName) implementuje potężne standardy obsługi obiektów XML określone w dokumencie „ECMAScript for XML (E4X) specyfikacja (ECMA-357 edycja 2).
Więcej informacji
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
prefix : String
Prefiks przestrzeni nazw. | Namespace | ||
uri : String
Identyfikator URI (Uniform Resource Identifier) przestrzeni nazw. | Namespace |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy obiekt Namespace zgodnie z wartościami parametrów prefixValue oraz uriValue. | Namespace | ||
Tworzy obiekt Namesepace. | Namespace | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Odpowiednik właściwości Namespace.uri. | Namespace | ||
Zwraca wartość identyfikatora URI dla określonego obiektu. | Namespace |
prefix | właściwość |
uri | właściwość |
Namespace | () | Konstruktor |
public function Namespace(prefixValue:*, uriValue:*)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Tworzy obiekt Namespace zgodnie z wartościami parametrów prefixValue
oraz uriValue
. Ten konstruktor wymaga zastosowania obydwu parametrów.
Wartość parametru prefixValue
zostaje przypisana do właściwości prefix
w następujący sposób:
- W przypadku przekazania wartości
undefined
, właściwościprefix
zostaje przypisana wartośćundefined
. - Jeśli wartość stanowi poprawną nazwę XML określoną za pomocą funkcji
isXMLName()
, zostaje ona przekonwertowana na ciąg znaków i przypisana do właściwościprefix
. - Jeśli wartość stanowi niepoprawną nazwę XML, właściwość
prefix
zostaje ustawiona na wartośćundefined
.
Wartość parametru uriValue
zostaje przypisana do właściwości uri
w następujący sposób:
- Przekazanie obiektu QName powoduje ustawienie właściwości
uri
na wartośćuri
obiektu QName. - W odwrotnym przypadku parametr
uriValue
zostaje przekonwertowany na ciąg znaków i przypisany właściwościuri
.
Uwaga: Ta klasa zawiera dwa wpisy metody konstruktora, ponieważ każdy formularz wymaga różnych parametrów. Zachowanie konstruktora może być różne w zależności o typu i liczby przekazanych argumentów określonych w każdym wpisie. Narzędzie ActionScript 3.0 nie obsługuje przeładowania metod czy konstruktora.
ParametryprefixValue:* — Przyrostek przestrzeni nazw.
| |
uriValue:* — Identyfikator URI (Uniform Resource Identifier) przestrzeni nazw.
|
Namespace | () | Konstruktor |
public function Namespace(uriValue:*)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Tworzy obiekt Namesepace. Wartości przypisane do właściwości uri
i prefix
nowego obiektu Namespace zależą od rodzaju wartości przekazanej do parametru uriValue
:
- Jeśli wartość nie zostanie przekazana, właściwości
prefix
iuri
zostają ustawione na pusty ciąg znaków. - Jeśli wartością jest obiekt Namespace, tworzona jest kopia tego obiektu.
- Jeśli wartością jest obiekt QName, właściwość
uri
zostaje ustawiona na właściwośćuri
obiektu QName.
Uwaga: Ta klasa zawiera dwa wpisy konstruktora, ponieważ każdy formularz wymaga różnych parametrów. Zachowanie konstruktora może być różne w zależności o typu i liczby przekazanych parametrów określonych w każdym wpisie. Język ActionScript 3.0 nie obsługuje przeciążania metod i konstruktorów.
ParametryuriValue:* — Identyfikator URI (Uniform Resource Identifier) przestrzeni nazw.
|
toString | () | metoda |
valueOf | () | metoda |
- Przykład przedstawia trzy obiekty Namespace, każdy z unikalnym identyfikatorem URI określającym przestrzeń nazw.
- Poniższy przykład ilustruje tworzenie zmiennej XML o nazwie
myXML
i przypisanie jej wartości zwrotnej uzyskanej za pomocą metodygetRSS()
. MetodagetRSS()
określa i zwraca obiekt XML zawierający kilka przestrzeni nazw. - Poniższy przykład ilustruje deklarowanie i obliczenie zmiennej Array poprzez wywołanie metody
parseRSS()
wraz z przekazaną zmiennąmyXML
. Za pomocą metodyparseRSS()
domyślna przestrzeń nazw XML zostaje określona jakorss
, a przykład ilustruje definiowanie zmiennej XMLList poprzez przypisanie listy obiektówitem
zmiennejmyXML
. We właściwościmyXML.item
utworzona zostaje tablica, która jest zapełniana różnymi węzłami. Tablica jest następnie zwracana. - Elementy tablicy są drukowane za pomocą pętli
for
oraz trzech wywołań instrukcjitrace()
.
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()
są zlokalizowane w osobnych przestrzeniach nazw. Po wywołaniu każda z nich zwraca inny ciąg znaków.
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; } }
Poniższy przykład ilustruje definiowanie przestrzeni nazw i kolorów, które odpowiadają położeniu myszki dla prostokątnego przycisku. Każde narysowanie przycisku powoduje zastosowanie właściwego koloru („out” — kolor czerwony; „over”— żółty; dla „down”— biały) poprzez odniesienie się do zmiennej bgcolor
dla danej przestrzeni nazw (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, 12:06 PM Z