PaqueteNivel superior
Clasepublic final class Namespace
HerenciaNamespace Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase Namespace contiene métodos y propiedades para definir y trabajar con espacios de nombre. Existen tres situaciones en las que pueden utilizarse espacios de nombre:

Esta clase muestra dos formas del método constructor porque cada forma acepta parámetros diferentes.

Esta clase (junto con las clases XML, XMLList y QName) implementa potentes normas de gestión de XML definidas en la especificación ECMAScript para XML (E4X) (ECMA-357 edición 2).

Ver los ejemplos

Véase también

XML
XMLList
QName
Especificación ECMAScript para XML (E4X) (ECMA-357; edición 2)
Utilización de espacios de nombres XML


Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  prefix : String
El prefijo del espacio de nombres.
Namespace
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
  uri : String
Identificador uniforme de recurso (URI) del espacio de nombres.
Namespace
Métodos públicos
 MétodoDefinido por
  
Namespace(uriValue:*)
Crea un objeto Namespace.
Namespace
  
Namespace(prefixValue:*, uriValue:*)
Crea un objeto Namespace conforme a los valores de los parámetros prefixValue y uriValue.
Namespace
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
  
Equivalente a la propiedad Namespace.uri.
Namespace
  
Devuelve el valor URI del objeto especificado.
Namespace
Información sobre propiedades
prefixpropiedad
prefix:String  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

El prefijo del espacio de nombres.


Implementación
    public function get prefix():String
    public function set prefix(value:String):void
uripropiedad 
uri:String  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Identificador uniforme de recurso (URI) del espacio de nombres.


Implementación
    public function get uri():String
    public function set uri(value:String):void
Información sobre constructores
Namespace()constructor
public function Namespace(uriValue:*)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea un objeto Namespace. Los valores asignados a las propiedades uri y prefix del nuevo objeto Namespace dependen del tipo de valor pasado al parámetro uriValue:

Nota: esta clase muestra dos entradas de constructor porque cada forma acepta parámetros diferentes. El constructor se comporta de forma diferente dependiendo del tipo y el número de parámetros pasados, como se detalla en cada entrada. ActionScript 3.0 no admite la sobrecarga de métodos o constructores.

Parámetros
uriValue:* — Identificador uniforme de recurso (URI) del espacio de nombres.
Namespace()constructor 
public function Namespace(prefixValue:*, uriValue:*)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea un objeto Namespace conforme a los valores de los parámetros prefixValue y uriValue. Este constructor requiere ambos parámetros.

El valor del parámetro prefixValue se asigna a la propiedad prefix de la siguiente forma:

El valor del parámetro uriValue se asigna a la propiedad uri de la siguiente forma:

Nota: esta clase muestra dos entradas de método constructor porque cada forma acepta parámetros diferentes. El constructor se comporta de forma diferente dependiendo del tipo y el número de argumentos pasados, como se detalla en cada entrada. ActionScript 3.0 no admite la sobrecarga de métodos o constructores.

Parámetros
prefixValue:* — El prefijo que debe utilizarse para el espacio de nombres.
 
uriValue:* — Identificador uniforme de recurso (URI) del espacio de nombres.
Información sobre métodos
toString()método
AS3 function toString():String

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Equivalente a la propiedad Namespace.uri.

Valor devuelto
String — Identificador uniforme de recurso (URI) del espacio de nombres en forma de cadena.
valueOf()método 
AS3 function valueOf():String

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Devuelve el valor URI del objeto especificado.

Valor devuelto
String — Identificador uniforme de recurso (URI) del espacio de nombres en forma de cadena.
Ejemplos Cómo utilizar los ejemplos
NamespaceExample.as

El siguiente ejemplo ilustra cómo trabajar con espacios de nombres definidos en objetos XML. Esto se consigue con los pasos siguientes:
  1. El ejemplo define tres objetos Namespace, cada uno con un URI exclusivo que define un espacio de nombres.
  2. El ejemplo define una variable XML llamada myXML y la asigna al valor devuelto por getRSS(). El método getRSS() define un objeto XML que contiene diversos espacios de nombres y devuelve el objeto XML.
  3. El ejemplo declara y evalúa una variable Array mediante la llamada al método parseRSS() con myXML transferido. En parseRSS(), el espacio de nombres XML predeterminado se define como rss y el ejemplo define una variable XMLList mediante la asignación de la lista de objetos item de myXML. Se crea una matriz y se llena con varios nodos de myXML.item. Después se devuelve la matriz.
  4. Los elementos de la matriz se imprimen con un bucle for y tres llamadas a 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

El siguiente ejemplo ilustra cómo se pueden utilizar los espacios de nombres para distinguir métodos que tienen el mismo nombre pero realizan tareas distintas. En este ejemplo, tres métodos llamados hello() residen en espacios de nombres independientes; cada uno devuelve una cadena distinta cuando se le llama.
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

El siguiente ejemplo utiliza nombres de espacios de nombres para seleccionar un valor de variable adecuado. Muestra cómo guardar un valor de espacio de nombres en una variable y utilizar dicha variable para referirse a los objetos contenidos en el espacio de nombres.

El ejemplo define espacios de nombres y colores que se corresponden con los estados de ratón de un botón rectangular. Cada vez que se dibuja el botón, el ejemplo aplica el color adecuado (out es rojo; over es amarillo; down es blanco) haciendo referencia a la variable bgcolor del espacio de nombres correspondiente (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);
    }
} 




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/Namespace.html