..:: MX Studio Fóruns ::..: Função que nao retorna nada - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Função que nao retorna nada Se alguem puder me ajudar agradeço

#1 User is offline   rramires 

  • Group: Membros
  • Posts: 3
  • Joined: 23-May 05

Posted 29 June 2005 - 11:54 PM

Olá, estou fazendo uma função para carregar um xml e não estou conseguindo retornar nada dela...

function conectaXML(arquivo:String) {
//cria o objeto xML
var xml:XML = new XML();
//ignora os espaços em branco
xml.ignoreWhite = true;
//carrega o arquivo externo
xml.load(arquivo);
//garante o carregamento completo
xml.onLoad = function(sucesso) {
if (sucesso) {
//retorna o xml
return xml.firstChild;
} else {
trace("Ocorreu um erro ao carregar");
}
};
}
teste = conectaXML("menu.xml");

// retorna undefined

trace(teste);

o estranho é que se eu der o trace dentro da funcao tá tudo certo...

function conectaXML(arquivo:String) {
//cria o objeto xML
var xml:XML = new XML();
//ignora os espaços em branco
xml.ignoreWhite = true;
//carrega o arquivo externo
xml.load(arquivo);
//garante o carregamento completo
xml.onLoad = function(sucesso) {
if (sucesso) {
//retorna o xml

trace (xml.firstChild);

} else {
trace("Ocorreu um erro ao carregar");
}
};
}
teste = conectaXML("menu.xml");

o xml é

<?xml version="1.0" encoding="UTF-8" ?>
<menu>
<item titulo="Uol" link="http://www.uol.com.br"/>
<item titulo="Terra" link="http://www.terra.com.br"/>
<item titulo="Msn" link="http://www.msn.com.br"/>
<item titulo="Eng" link="http://www.eng.com.br"/>
<item titulo="Bol" link="http://www.bol.com.br"/>
</menu>

0

#2 User is offline   hufersil 

  • Group: Moderadores
  • Posts: 1266
  • Joined: 15-January 04

Posted 30 June 2005 - 08:14 AM

é que você está fazendo de uma maneira errada...
quando se carrega arquivos externos, a resposta não vem imediatamente, ela demora um pouco para chegar.
http://www.mxstudio.com.br/views.tutorial....w&cid=3&aid=565

O link acima explica um pouco melhor o que ocorre.
Uma maneira de você contornar isto, seria desta maneira:

ActionScript

var teste = null;
function conectaXML(arquivo:String) {
       /*cria o objeto xML*/
       var xml:XML = new XML();
       /*ignora os espaços em branco*/
       xml.ignoreWhite = true;
       /*garante o carregamento completo*/
       xml.onLoad = function(sucesso) {
             if (sucesso) {
                   /*altera a variavel teste para o primeiro nó*/
                   teste = xml.firstChild;
             } else {
                   trace("Ocorreu um erro ao carregar");
             }
       };
       /*carrega o arquivo externo*/
       xml.load(arquivo);
}


Mas neste caso, a variável que seria sempre alterada é a teste.
Daeh seria só mudar o nome dela.

@braços e fique com Deus!
0

#3 User is offline   Fernando Bernardes 

  • Group: Membros
  • Posts: 3
  • Joined: 10-July 07

Posted 10 July 2007 - 05:22 PM

To tendo um problema aqui galera.... nao consigo retornar nada dessa função!!!
Acho que tem a ver com
...
xml.onLoad = function(sucesso) {
...

nao sai nada dessa funcao, a unica coisa que funciona corretamente é o trace dentro do for...

Ja tentei tudo que vcs pensarem... Se alguém souber qual o problema com o "onLoad" por favor me ajudem" ...
Obrigado.


function conectaXML(arquivo:Number):Array {
       var xml:XML = new XML();
       var matmes:Array = new Array();
       xml.ignoreWhite = true;
       xml.onLoad = function(sucesso) {
             if (sucesso) {
                 for (var i :Number = 0; i < xml.firstChild.childNodes.length; i++ ) {
    				matmes[i] = xml.firstChild.childNodes[i].attributes.numero;
					//trace(matmes[i]);
				 }
             } else {
                   trace("Ocorreu um erro ao carregar");
             }
       };
       xml.load(arquivo+".xml");
	   
	   trace("a"+matmes);
	   return matmes;
}

var teste : Array = conectaXML(1);

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




2 User(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)