Pacchetto | Primo livello |
Classe | public final class Namespace |
Ereditarietà | Namespace Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Spazi dei nomi degli oggetti XML Gli spazi dei nomi associano un prefisso dello spazio dei nomi a un Uniform Resource Identifier (URI) che identifica lo spazio dei nomi. Il prefisso è una stringa utilizzata per fare riferimento allo spazio dei nomi all'interno di un oggetto XML. Se il prefisso non è definito, quando l'XML viene convertito in una stringa ne viene automaticamente generato uno.
- Spazi dei nomi per differenziare i metodi Gli spazi dei nomi possono differenziare i metodi con lo stesso nome per eseguire operazioni diverse. Se due metodi hanno lo stesso nome ma spazi dei nomi separati, possono eseguire operazioni diverse.
- Spazi dei nomi per il controllo dell'accesso Gli spazi dei nomi possono essere utilizzati per controllare l'accesso a un gruppo di proprietà e metodi di una classe. Se collocate le proprietà e i metodi in uno spazio dei nomi privato, essi diventano inaccessibili per qualunque codice che non abbia accesso allo spazio dei nomi. Potete consentire l'accesso al gruppo di proprietà e di metodi passando lo spazio dei nomi ad altre classi, metodi o funzioni.
Questa classe mostra due forme del metodo di costruzione poiché ogni forma accetta due parametri diversi.
Questa classe (insieme alle classi XML, XMLList e QName) implementa dei potenti standard di gestione dell'XML definiti nella specifica ECMAScript for XML (E4X) (ECMA-357 edition 2).
Altri esempi
Altre informazioni
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
prefix : String
Il prefisso dello spazio dei nomi. | Namespace | ||
uri : String
L'Uniform Resource Identifier (URI) dello spazio dei nomi. | Namespace |
Metodo | Definito da | ||
---|---|---|---|
Crea un oggetto Namespace in base ai valori dei parametri prefixValue e uriValue. | Namespace | ||
Crea un oggetto Namespace. | Namespace | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Equivalente alla proprietà Namespace.uri. | Namespace | ||
Restituisce il valore URI dell'oggetto specificato. | Namespace |
prefix | proprietà |
uri | proprietà |
Namespace | () | Funzione di costruzione |
public function Namespace(prefixValue:*, uriValue:*)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Crea un oggetto Namespace in base ai valori dei parametri prefixValue
e uriValue
. Questa funzione di costruzione richiede entrambi i parametri.
Il valore del parametro prefixValue
viene assegnato alla proprietà prefix
nel modo seguente:
- Se viene passato
undefined
,prefix
viene impostato suundefined
. - Se il valore è un nome XML valido, determinato dalla funzione
isXMLName()
, viene convertito in una stringa e assegnato alla proprietàprefix
. - Se il valore non è un nome XML valido, la proprietà
prefix
viene impostata suundefined
.
Il valore del parametro uriValue
viene assegnato alla proprietà prefix
nel modo seguente:
- Se viene passato un oggetto QName, la proprietà
uri
viene impostata sul valore della proprietàuri
dell'oggetto QName. - In caso contrario, il parametro
uriValue
viene convertito in una stringa e assegnato alla proprietàuri
.
Nota: questa classe mostra due voci del metodo di costruzione poiché ogni forma accetta dei parametri diversi. La funzione di costruzione si comporta in modo diverso a seconda del tipo e del numero di argomenti passati, come spiegato in dettaglio per ogni voce. ActionScript 3.0 non supporta l'overload dei metodi o delle funzioni di costruzione.
ParametriprefixValue:* — Il prefisso da utilizzare per lo spazio dei nomi.
| |
uriValue:* — L'Uniform Resource Identifier (URI) dello spazio dei nomi.
|
Namespace | () | Funzione di costruzione |
public function Namespace(uriValue:*)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Crea un oggetto Namespace. I valori assegnati alle proprietà uri
e prefix
del nuovo oggetto Namespace dipendono dal tipo di valore passato per il parametro uriValue
:
- Se non passate alcun valore, le proprietà
prefix
euri
vengono impostate su una stringa vuota. - Se il valore è un oggetto Namespace, viene creata una copia dell'oggetto.
- Se il valore è un oggetto QName, la proprietà
uri
viene impostata sulla proprietàuri
dell'oggetto QName.
Nota: questa classe mostra due voci di costruzione poiché ogni forma accetta dei parametri diversi. La funzione di costruzione si comporta in modo diverso a seconda del tipo e del numero di parametri passati, come spiegato in dettaglio per ogni voce. ActionScript 3.0 non supporta l'overload dei metodi o delle funzioni di costruzione.
ParametriuriValue:* — L'Uniform Resource Identifier (URI) dello spazio dei nomi.
|
toString | () | metodo |
valueOf | () | metodo |
- L'esempio seguente definisce tre oggetti Namespace, ognuno con un URI univoco che definisce uno spazio dei nomi.
- L'esempio definisce una variabile XML denominata
myXML
e assegna ad essa il valore restituito dagetRSS()
. Il metodogetRSS()
definisce un oggetto XML contenente numerosi spazi dei nomi e restituisce l'oggetto XML. - Il codice di esempio dichiara e valuta una variabile Array mediante la chiamata al metodo
parseRSS()
al quale viene passata la variabilemyXML
. InparseRSS()
, lo spazio dei nomi XML predefinito è definito comerss
e l'esempio definisce una variabile XMLList mediante l'assegnazione dell'elenco degli oggettiitem
dimyXML
. Viene creato un array che viene compilato con diversi nodi all'interno dimyXML.item
. L'array viene quindi restituito. - Gli elementi dell'array vengono stampati mediante un ciclo
for
e tre chiamate atrace()
.
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()
si trovano in spazi dei nomi separati e, quando vengono chiamati, restituiscono una stringa diversa.
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; } }
L'esempio definisce gli spazi dei nomi e i colori corrispondenti agli stati del mouse per un pulsante rettangolare. Ogni volta che viene disegnato un pulsante, l'esempio applica il colore appropriato (rosso per out, giallo per over e bianco per down) mediante il riferimento alla variabile bgcolor
dello spazio dei nomi corrispondente (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, 02:44 PM Z