Comunidad de diseño web y desarrollo en internet

Problema Function y Variables

Citar            
MensajeEscrito el 31 Ago 2016 07:38 pm
Hola!
Con mi hermano estamos haciendo un flash que compare datos obtenidos desde un XML. Hicimos el siguiente código de prueba para ver si podíamos identificar correctamente las etiquetas del XML:

Código :

// IMPORTS
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;

// VARS 
var _loader:URLLoader;
var _xml:XML;
var Jug_A:String;

_loader = new URLLoader();
_loader.load(new URLRequest("prueba.xml"));
_loader.addEventListener(Event.COMPLETE, cargarXML);
//
function cargarXML(e:Event):void
{
_xml = new XML(e.target.data);
leerXML(_xml);
}
//---------- FUNCION LECTURA DE DATOS -------------
function leerXML(datos:XML):void
{
var JugA_list:XMLList = datos.Resultado.JugadorA;

//
for (var i:int = 0; i < JugA_list.length(); i++) {
Jug_A = JugA_list[i];
}
}
trace(Jug_A);


Sin embargo el resultado que nos aparece dice "null".
Cuando colocamos el trace(Jug_A); detro de la llave del function leerXML, nos entrega el último nombre que esta en el JugA_list. Al parecer al llamar a la variable fuera de la función hace que los datos que tenia registrados desaparescan... ¿cómo puedo hacer para que mantenga los datos y pueda usar la variable fuera de la funcion?

les agradesco su ayuda

Por KAY0

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Sep 2016 09:25 pm
Es muy importante que entiendas el concepto de scope y la forma en que se ejecuta un callback, que son los dos problemas que tienes. Para empezar muy simple vamos a decir esto: una variable existe dentro de una funcion o dentro de la línea de tiempo. A existe en la línea de tiempo (y dentro de cada función), B solo dentro de la función.

Luego tu trace se ejecuta antes de la función, con lo cual aunque hubieras usado una variable de línea de tiempo (A en el ejemplo) igual hubiuera dado null

Código ActionScript :

var A:Number;
function mifunction(){
  var B:number
   trace("Hago función")
}
trace("Hago");
mifunction();


En tu ejemplo, declara la variable afuera de la función

Jorge

Por solisarg

BOFH

13299 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.