Paket | Oberste Ebene |
Klasse | public final class Namespace |
Vererbung | Namespace Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Namespaces von XML-Objekten. Namespaces ordnen ein Namespacepräfix einem URI (Uniform Resource Identifier, einheitlicher Ressourcenlokator) zu, der den Namespace identifiziert. Das Präfix ist ein String, der verwendet wird, um innerhalb eines XML-Objekts auf den Namespace zu verweisen. Ist das Präfix nicht definiert, wenn das XML-Objekt in einen String konvertiert wird, wird ein Präfix automatisch erzeugt.
- Namespaces zum Unterscheiden von Methoden. Namespaces können Methoden mit demselben Namen unterscheiden, die aber unterschiedliche Aufgaben wahrnehmen. Besitzen zwei Methoden denselben Namen, aber unterschiedliche Namespaces, so können Sie unterschiedliche Aufgaben durchführen.
- Namespaces für die Zugriffskontrolle. Namespaces können verwendet werden, um auf eine Gruppe von Eigenschaften und Methoden in einer Klasse zuzugreifen. Wenn Sie die Eigenschaften und Methoden in einen „private“-Namespace setzen, sind sie für jeglichen Code, der keine Zugriffsberechtigung zu diesem Namespace hat, unzugänglich. Sie können Zugriff zu dieser Gruppe an Eigenschaften und Methoden gewähren, indem Sie den Namespace auch an andere Klassen, Methoden oder Funktionen übergeben.
Diese Klasse zeigt zwei Formen der Konstruktormethode, da jede Form andere Parameter akzeptiert.
Diese Klasse implementiert (zusammen mit den Klassen XML, XMLList und QName) leistungsstarke Standards zur XML-Verarbeitung, die in der Spezifikation ECMA-357, Edition 2: „ECMAScript for XML (E4X)“ definiert sind.
Weitere Informationen
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
prefix : String
Das Präfix des Namespaces. | Namespace | ||
uri : String
Der Namespace-URI (Uniform Resource Identifier, einheitlicher Ressourcenbezeichner). | Namespace |
Methode | Definiert von | ||
---|---|---|---|
Erstellt ein Namespace-Objekt gemäß den Werten der Parameter prefixValue und uriValue. | Namespace | ||
Erstellt ein Namespace-Objekt. | Namespace | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Äquivalent zur Eigenschaft Namespace.uri. | Namespace | ||
Gibt den URI-Wert des angegebenen Objekts zurück. | Namespace |
prefix | Eigenschaft |
uri | Eigenschaft |
Namespace | () | Konstruktor |
public function Namespace(prefixValue:*, uriValue:*)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Erstellt ein Namespace-Objekt gemäß den Werten der Parameter prefixValue
und uriValue
. Dieser Konstruktor benötigt beide Parameter.
Der Wert des Parameters prefixValue
wird der prefix
-Eigenschaft wie folgt zugewiesen:
- Wird
undefined
übergeben, wird dieprefix
-Eigenschaft aufundefined
gesetzt. - Handelt es sich bei dem Wert um einen gemäß der Funktion
isXMLName()
gültigen XML-Namen, wird er in einen String konvertiert und der Eigenschaftprefix
zugewiesen. - Ist der Wert kein gültiger XML-Name, wird
prefix
aufundefined
gesetzt.
Der Wert des Parameters uriValue
wird der Eigenschaft uri
wie folgt zugewiesen:
- Wird ein QName-Objekt übergeben, wird die Eigenschaft
uri
auf den Wert deruri
-Eigenschaft des QName-Objekts gesetzt. - Andernfalls wird der Parameter
uriValue
in einen String konvertiert und der Eigenschafturi
zugewiesen.
Hinweis: Diese Klasse zeigt zwei Konstruktormethodeneinträge, da jede Form andere Parameter akzeptiert. Der Konstruktor verhält sich unterschiedlich, je nach Typ und Anzahl der übergebenen Argumente, wie sie in den einzelnen Einträgen beschrieben sind. Überladene Methoden oder Konstruktoren werden von ActionSript 3.0 nicht unterstützt.
ParameterprefixValue:* — Das für den Namespace zu verwendende Präfix.
| |
uriValue:* — Der Namespace-URI (Uniform Resource Identifier, einheitlicher Ressourcenbezeichner).
|
Namespace | () | Konstruktor |
public function Namespace(uriValue:*)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Erstellt ein Namespace-Objekt. Welche Werte den Eigenschaften uri
und prefix
des neuen Namespace-Objekts zugewiesen werden, hängt davon ab, welche Art von Wert an den Parameter uriValue
übergeben wurde:
- Wurde kein Wert übergeben, werden die Eigenschaften
prefix
unduri
auf einen leeren String gesetzt. - Ist der Wert ein Namespace-Objekt, wird eine Kopie des Objekts erstellt.
- Ist der Wert ein QName-Objekt, wird die
uri
auf dieuri
-Eigenschaft des QName-Objekts gesetzt.
Hinweis: Diese Klasse zeigt zwei Konstruktoreinträge, da jede Form andere Parameter akzeptiert. Der Konstruktor verhält sich unterschiedlich, je nach Typ und Anzahl der übergebenen Parameter, wie sie in den einzelnen Einträgen beschrieben sind. Überladene Methoden oder Konstruktoren werden von ActionSript 3.0 nicht unterstützt.
ParameteruriValue:* — Der Namespace-URI (Uniform Resource Identifier, einheitlicher Ressourcenbezeichner).
|
toString | () | Methode |
valueOf | () | Methode |
- In diesem Beispiel werden drei Namespace-Objekte definiert, und zwar jeweils mit einer den Namespace definierenden eindeutigen URI.
- In diesem Beispiel wird eine XML-Variable mit dem Namen
myXML
definiert und dem RückgabewertgetRSS()
zugewiesen. DiegetRSS()
-Methode definiert ein XML-Objekt, das mehrere Namespaces enthält, und gibt dieses XML-Objekt zurück. - Eine Array-Variable wird deklariert und bewertet, indem die Methode
parseRSS()
aufgerufen und an diemyXML
übergeben wird. Der Standard-XML-Namespace wird inparseRSS()
alsrss
definiert. Im Beispiel wird durch Zuweisen der Liste deritem
-Objekte inmyXML
eine XMLList-Variable definiert. Ein Array wird mit verschiedenen Knoten innerhalb vonmyXML.item
erstellt und gefüllt. Anschließend wird das Array zurückgegeben. - Der Ausdruck der im Array enthaltenen Elemente erfolgt mithilfe einer
for
-Schleife und von drei Aufrufen vontrace()
.
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()
in separaten Namespaces; bei jedem Aufruf wird ein anderer String zurückgegeben.
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; } }
In diesem Beispiel werden Namespaces und Farben definiert, die den Mauszuständen für eine rechteckige Schaltfläche entsprechen. Bei jedem Zeichnen der Schaltfläche wird die entsprechende Farbe („out“ (Deaktiviert) ist Rot; „over“ (Darüber) ist Gelb; „down“ (Gedrückt) ist Weiß) angewendet, indem die bgcolor
-Variable auf den entsprechenden Namespace verweist (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:04 AM Z