Pacote | Nível superior |
Classe | public final class Namespace |
Herança | Namespace Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Namespaces de objetos XML Namespaces associam um prefixo de namespace com um URI (Uniform Resource Identifier) que identifica o namespace. O prefixo é uma string usada para fazer referência ao namespace em um objeto XML. Se o prefixo for indefinido, quando o XML for convertido em uma string, um prefixo será automaticamente gerado.
- Namespace para diferenciar métodos Namespaces podem diferenciar métodos com o mesmo nome para realizar diferentes tarefas. Se dois métodos tiverem o mesmo nome, mas namespaces separados, poderão realizar diferentes tarefas.
- Namespaces para controle de acesso Namespaces podem ser usados para controlar o acesso a um grupo de propriedades e métodos em uma classe. Se você inserir as propriedades e os métodos em um namespace privado, eles não poderão ser acessados por códigos que não tiverem acesso a esse namespace. É possível conceder acesso ao grupo de propriedades e métodos transmitindo o namespace a outras classes, métodos ou funções.
Essa classe mostra duas formas do método do construtor, já que cada uma aceita diferentes parâmetros.
Essa classe (junto com as classes XML, XMLList e QName) implementa eficientes padrões de manipulação de XML definidos na especificação ECMAScript para XML (E4X) (ECMA-357 edição 2).
Saiba mais
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
prefix : String
O prefixo do namespace. | Namespace | ||
uri : String
URI (Identificador de Recurso Uniforme) do namespace. | Namespace |
Método | Definido por | ||
---|---|---|---|
Cria um objeto Namespace de acordo com os valores dos parâmetros valorPrefixo e valorUri. | Namespace | ||
Cria um objeto Namespace. | Namespace | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Equivalente à propriedade Namespace.uri. | Namespace | ||
Retorna o valor URI do objeto especificado. | Namespace |
prefix | propriedade |
uri | propriedade |
Namespace | () | Construtor |
public function Namespace(prefixValue:*, uriValue:*)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Cria um objeto Namespace de acordo com os valores dos parâmetros prefixValue
e uriValue
. Esse construtor requer ambos os parâmetros.
O valor do parâmetro prefixValue
é atribuído à propriedade prefix
da seguinte maneira:
- Se
undefined
for transmitido,prefix
será definido comoundefined
. - Se o valor for um nome XML válido, conforme determinado pela função
isXMLName()
, ele será convertido em uma string e atribuído à propriedadeprefix
. - Se o valor não for um nome XML válido, a propriedade
prefix
será definida comoundefined
.
O valor do parâmetro uriValue
é atribuído à propriedade uri
da seguinte maneira:
- Se o objeto QName for transmitido, a propriedade
uri
será definida como o valor da propriedadeuri
desse objeto QName. - Caso contrário, o parâmetro
uriValue
será convertido em uma string e atribuído à propriedadeuri
.
Nota: esta classe mostra duas entradas de método de construtor, uma vez que cada forma aceita diferentes parâmetros. O construtor se comporta de forma diferente dependendo do tipo e do número de argumentos transmitidos, conforme detalhado em cada entrada. O ActionScript 3.0 não oferece suporte à sobrecarga de métodos ou construtores.
ParâmetrosprefixValue:* — O prefixo a ser usado para o namespace.
| |
uriValue:* — URI (Identificador de Recurso Uniforme) do namespace.
|
Namespace | () | Construtor |
public function Namespace(uriValue:*)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Cria um objeto Namespace. Os valores atribuídos às propriedades uri
e prefix
do novo objeto Namespace dependem do tipo de valor transmitido para o parâmetro uriValue
:
- Se nenhum valor for transmitido, as propriedades
prefix
euri
serão definidas como uma string vazia. - Se o valor for um objeto Namespace, uma cópia desse objeto será criada.
- Se o valor for um objeto QName, a propriedade
uri
será definida como a propriedadeuri
do objeto QName.
Nota: esta classe mostra duas entradas de construtor, uma vez que cada forma aceita diferentes parâmetros. O construtor se comporta de forma diferente dependendo do tipo e do número de parâmetros transmitidos, conforme detalhado em cada entrada. O ActionScript 3.0 não oferece suporte à sobrecarga de métodos ou construtores.
ParâmetrosuriValue:* — URI (Identificador de Recurso Uniforme) do namespace.
|
toString | () | método |
valueOf | () | método |
- O exemplo define três objetos Namespace, cada qual com um URI exclusivo que define um namespace.
- O exemplo define uma variável XML denominada
myXML
e a atribui ao valor de retorno degetRSS()
. O métodogetRSS()
define um objeto XML que contém vários namespaces e que retorna esse objeto XML. - O exemplo declara e avalia uma variável Array chamando o método
parseRSS()
com a variávelmyXML
transmitida. EmparseRSS()
, o namespace XML padrão é definido comorss
e o exemplo define uma variável XMLList atribuindo a lista de objetositem
emmyXML
. Uma matriz é criada e preenchida com vários nós emmyXML.item
. Em seguida, essa matriz é retornada. - Os elementos na matriz são impressos com o uso de uma repetição
for
e três chamadas 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()
residem em namespaces separados; cada um retorna uma string diferente quando chamado.
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; } }
O exemplo define namespaces e cores que correspondem a estados do mouse para um botão retangular. Sempre que o botão for desenhado, o exemplo aplicará a cor apropriada ("out" é vermelho; "over" é amarelo e "down" é branco), fazendo referência à variável bgcolor
do namespace correspondente (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); } }
Wed Jun 13 2018, 11:10 AM Z