Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gustavo buarque

Resgatar valor de uma váriavel dentro de uma função

Recommended Posts

Bom dia, tenho a função exemplo abaixo:

sucesso= true;teste = function(sucesso:Boolean):Void{	categoria = "casa";	if (sucesso){	trace(categoria);	}}	//teste(true);	trace(categoria);

Quero resgatar o valor de categoria estando fora da função, como faço? Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se estiver no mesmo frame da timelime você consegue visualizar a variavel sem problema nenhum, para testar é só você descomentar a linha que está comentada no seu código que já vai funcionar. Se estiver em frames diferentes você pode armazenar a variável no _root do do filme. Abaixo segue um exemplo.function teste() {variavel = "funciona no mesmo frame";_root.variavelderrot = "Você pode pegar esta variavel em qualquer lugar do filme.";}teste();trace(variavel);trace(_root.variavelderrot);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois então o meu problema eu não sei como resolver, pois pelo que vi somente é possível resgatar uma variável, se executar a função.E situção é assim:

noticiaXML.onLoad = function(success:Boolean):Void  {     if (success) {         categoria = "casa";    }}trace(categoria);

A pergunta que fica a função executa normal entretanto a váriável não resgata o valor de dentro da função.Entende o que quero dize?

Compartilhar este post


Link para o post
Compartilhar em outros sites

declara a veriavel fora da função onLoad

 

var categorianoticiaXML.onLoad = function(success:Boolean):Void {  if (success) {	_root.categoria = "casa";  }}trace(_root.categoria);

 

 

 

declara a veriavel fora da função onLoad

 

var categorianoticiaXML.onLoad = function(success:Boolean):Void {  if (success) {	_root.categoria = "casa";  }}trace(_root.categoria);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz.. para mim não funcionou, categoria permanece indefinida, veja abaixo

var meuXML:XML = new XML();var categoria;meuXML.ignoreWhite = true;meuXML.onLoad = function(success:Boolean):Void {	if(success){		    _root.categoria = "casa";			}};trace(_root.categoria);meuXML.load("teste.xml");

Cria um xml chamado teste.xml

<?xml version="1.0" encoding="ISO-8859-1" ?><teste><id>1</id><id>2</id></teste>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é outro, você não pode querer pegar o valor da variavel logo após chamar o load, pois o carregamento do XML demora um pouquinhoentão a variavel categoria só terá um valor depois de executar a evento onLoaddesse modo que você está fazendo não dá mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que você pode fazer é colocar esse codigo no 1º frame

stop()var meuXML:XML = new XML();var categoria;meuXML.ignoreWhite = true;meuXML.onLoad = function(success:Boolean):Void { if(success){  _root.categoria = "casa";  _gotoAndStop() }};meuXML.load("teste.xml");

e no 2º frame você usaria a variavel

 

trace(_root.categoria);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte eu ia postar um explicação do que eu fiz.. mas resolvi passar o código todo, talvez alguém possa usar para si, apesar q tem muito a melhorar, principalemnte em identação.

//*****************//Estrutura do XML das noticias//*****************/*<noticia id="3" categoria="cases">	<titulo>Uma vista</titulo> node 0    <conteudo>Montanhas</conteudo> node 1    <autor>Gustavo Buarque Costa Cardoso</autor> node 2    <data>04/05/2007</data> node 3</noticia>*///*****************//Estrutura do XML das fotos//*****************/*<?xml version="1.0" encoding="ISO-8951"?><fotos><foto>http://localhost/deforma/sistema/infonews/fotos/cases/11/n3i1.jpg</foto><foto>http://localhost/deforma/sistema/infonews/fotos/cases/11/n3i2.jpg</foto></fotos>*///*****************//Estilos/Definições dos objetos//*****************conteudoText.editable = false;autorText.editable = false;dataText.editable = false;//********************//Cria os objetos//*********************System.useCodepage = true;// Objeto (instância) da classe MovieClipLoadervar objMCL:MovieClipLoader = new MovieClipLoader();// Objeto ouvinte do listbox 'listaNoticias'.var listObjt:Object = new Object();//Criando o xml e fazendo ele ignorar espaços em branco var noticiaXML:XML = new XML(); var fotosXML:XML = new XML(); var a_fotos:Array = new Array();var a_noticias:Array = new Array();var n:Number = 0;//código da notícia vindo do site através da URLcodigo_site = _root.codigo;//Ignora os espaços em branco no XMLnoticiaXML.ignoreWhite = true; fotosXML.ignoreWhite = true; //Quando o xml carregar com sucesso executar as funções noticiaXML.onLoad = function(success:Boolean):Void  {     //(o xml é carregado na última linha do script)     if (success) {         //Número total de noticias        n_noticias = noticiaXML.firstChild.childNodes.length; 		listaNoticias.removeAll(); //limpa o listBox.				listaNoticias.addItem("Escolha uma notícia na lista:");		for(n; n < n_noticias; n++){				// Adiciona o nome como etiqueta ao listbox, e o número do loop com valor.				a_noticias[n] = noticiaXML.firstChild.childNodes[n].attributes.id;				listaNoticias.addItem({label:noticiaXML.firstChild.childNodes[n].childNodes[0].frstChild.nodeValue, data:n	});				//carrega inicialmente os conteúdos através da id da notícia, passada por URL				if(a_noticias[n] == codigo_site){					listaNoticias.selectedIndex = n+1;					conteudoText.text = noticiaXML.firstChild.childNodes[n].childNodes[1].firstChild.nodeValue;					autorText.text = noticiaXML.firstChild.childNodes[n].childNodes[2].firstChild.nodeValue;					dataText.text = noticiaXML.firstChild.childNodes[n].childNodes[3].firstChild.nodeValue;					_root.categoria = noticiaXML.firstChild.childNodes[n].attributes.categoria;					_root.not_selec = noticiaXML.firstChild.childNodes[n].attributes.id;				}		}			} else {  		conteudoText.text = "Ocorreu um erro contate o administrador";    } //********************//Carrega os conteúdos //*********************//***********Inicia com os conteúdos caso código do site receba a id incial	caminho_absoluto = "http://localhost/deforma/sistema/infonews/fotos/";	caminho = caminho_absoluto + categoria + "/" + not_selec + "/fotos.xml";if (not_selec != null ){ fotosXML.onLoad = function(success:Boolean):Void  {      //(o xml é carregado na última linha do script)     if (success) { 		 //Número total de noticias        n_fotos = fotosXML.firstChild.childNodes.length; 		for(i=0; i<n_fotos;i++){			a_fotos[i] = fotosXML.firstChild.childNodes[i].firstChild.nodeValue;			objMCL.loadClip(a_fotos[i], _root["container"+i].alvo);		}		//Botões		_root.container0.onRelease = function(){				objMCL.loadClip(a_fotos[0], fotoMax);		}		_root.container1.onRelease = function(){				objMCL.loadClip(a_fotos[1], fotoMax);		}		_root.container2.onRelease = function(){				objMCL.loadClip(a_fotos[2], fotoMax);		}		_root.container3.onRelease = function(){				objMCL.loadClip(a_fotos[3], fotoMax);		}		_root.container4.onRelease = function(){				objMCL.loadClip(a_fotos[4], fotoMax);		}		_root.container5.onRelease = function(){				objMCL.loadClip(a_fotos[5], fotoMax);		}		_root.container6.onRelease = function(){				objMCL.loadClip(a_fotos[6], fotoMax);		}		_root.container7.onRelease = function(){				objMCL.loadClip(a_fotos[7], fotoMax);		}		_root.container8.onRelease = function(){				objMCL.loadClip(a_fotos[8], fotoMax);		}		_root.container9.onRelease = function(){				objMCL.loadClip(a_fotos[9], fotoMax);		}	}}	fotosXML.load(caminho);} else {	debuga = "Não existem fotos";}//************//************ Carrega os conteúdos das fotos somente quando selecionado um item no combo// Quando um novo item for selecionado o evento change é chamado.listObjt.change = function(mudar:Object){//Descarrega os filmes dos alvosfor(i=0; i<10;i++){		objMCL.unloadClip(_root["container"+i].alvo);}// Grava a ID do item selecionado na variável 'listIdSelecionado'.listIdSelecionado = mudar.target.value;// Recebe a informação do xml relativo ao id		categoria = noticiaXML.firstChild.childNodes[listIdSelecionado].attributes.categoria;		not_selec = noticiaXML.firstChild.childNodes[listIdSelecionado].attributes.id;////Carregar o XML de fotos//Quando o xml carregar com sucesso executar as funções fotosXML.onLoad = function(success:Boolean):Void  {      //(o xml é carregado na última linha do script)     if (success) { 		 //Número total de noticias        n_fotos = fotosXML.firstChild.childNodes.length; 		for(i=0; i<n_fotos;i++){			a_fotos[i] = fotosXML.firstChild.childNodes[i].firstChild.nodeValue;			objMCL.loadClip(a_fotos[i], _root["container"+i].alvo);		}		//Botões		_root.container0.onRelease = function(){				objMCL.loadClip(a_fotos[0], fotoMax);		}		_root.container1.onRelease = function(){				objMCL.loadClip(a_fotos[1], fotoMax);		}		_root.container2.onRelease = function(){				objMCL.loadClip(a_fotos[2], fotoMax);		}		_root.container3.onRelease = function(){				objMCL.loadClip(a_fotos[3], fotoMax);		}		_root.container4.onRelease = function(){				objMCL.loadClip(a_fotos[4], fotoMax);		}		_root.container5.onRelease = function(){				objMCL.loadClip(a_fotos[5], fotoMax);		}		_root.container6.onRelease = function(){				objMCL.loadClip(a_fotos[6], fotoMax);		}		_root.container7.onRelease = function(){				objMCL.loadClip(a_fotos[7], fotoMax);		}		_root.container8.onRelease = function(){				objMCL.loadClip(a_fotos[8], fotoMax);		}		_root.container9.onRelease = function(){				objMCL.loadClip(a_fotos[9], fotoMax);		}	}}//Definindo os caminhos	caminho_absoluto = "http://localhost/deforma/sistema/infonews/fotos/";	caminho = caminho_absoluto + categoria + "/" + not_selec + "/fotos.xml";//Carregando o XML e dando início ao processo if (not_selec != null ){ 	fotosXML.load(caminho);} else {	trace("Não existem fotos");}//****************//Inicia os conteúdos do texto quando selecionado um item no comboconteudoText.text = noticiaXML.firstChild.childNodes[listIdSelecionado].childNodes[1].firstChild.nodValue;autorText.text = noticiaXML.firstChild.childNodes[listIdSelecionado].childNodes[2].firstChild.nodValue;dataText.text = noticiaXML.firstChild.childNodes[listIdSelecionado].childNodes[3].firstChild.nodValue;};//// Registra o objeto 'listObjt' como ouvinte.listaNoticias.addEventListener("change", listObjt); //*************}; //Carregando o XML e dando início ao processo noticiaXML.load("http://localhost/deforma/sistema/infonews/infonews.xml");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.