Foros del Web » Creando para Internet » Flash y Actionscript »

joder con las clases! problema de novato

Estas en el tema de joder con las clases! problema de novato en el foro de Flash y Actionscript en Foros del Web. ya no puedo más, lo escribo acá antes de tirarme por la ventana. tengo una clase en un fichero .as (enlazado bien con mi .fla), ...
  #1 (permalink)  
Antiguo 03/04/2008, 17:52
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 9 meses
Puntos: 3
joder con las clases! problema de novato

ya no puedo más, lo escribo acá antes de tirarme por la ventana.

tengo una clase en un fichero .as (enlazado bien con mi .fla), el problema es con el valor de las variables, me las pone a undefined.

Código (simplificado)
--------------------------

class barra extends UIComponent
{
private var nombre:String;
private var fichero:XML;

function barra () //CONSTRUCTOR
{
nombre = "Bandit";
fichero= new XML();
fichero.ignoreWhite = true;
fichero.load ("./Opciones.xml");
fichero.onLoad = LoLeemos();
...
}

function LoLeemos(success)
{
if (success) //LO HA LEIDO BIEN
else
trace("Error de fichero!");
}

Dentro del constructor llamo a la función (LoLeemos) para leer la información XML pero siempre me entra al else, o sea que no lo ha podido leer!

si pongo la función dentro del propio constructor, no me lee las variable!

function barra () //CONSTRUCTOR
{

fichero= new XML();
fichero.ignoreWhite = true;
fichero.load ("./Opciones.xml");
fichero.onLoad = function()
{
trace(nombre); //UNDEFINED
trace(this.nombre); //UNDEFINED

}

trace(nombre); //OK
}

necesito que me digais:
1. el porque del fichero XML no me lo reconoce
2. el porque del undefined de la variable si en el constructor me pinta bien el nombre: Bandit
(en las otras funciones no:(

he probado public, private y no veo que pasa, ayuda urgenteee, gracias cracks!
  #2 (permalink)  
Antiguo 03/04/2008, 21:21
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Re: joder con las clases! problema de novato

No te lo reconoce por que no lo esta encontrando, prueba ponerlo en la misma carpeta y quitale el ./
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 04/04/2008, 10:47
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 9 meses
Puntos: 3
Re: joder con las clases! problema de novato

a parte de que no me reconoce la carpeta (he puesto el .xml en la misma carpeta que el .as y el .fla y el problema perdura!!) al querer consultar la variable nombre me pone undefined!!

porque, porque, porque?

trace(this.nombre); //UNDEFINED

a ver si me podeis colgar una clase bien completa en flash para ver como se tiene que acceder..GRACIAS desde ya!
  #4 (permalink)  
Antiguo 04/04/2008, 12:25
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: joder con las clases! problema de novato

El problema de la carga del xml, lo mismo lo puedes solucionar con esto:

Código PHP:
class barra extends UIComponent
{
    private var 
datos:XML;

    function 
barra ()
    {    
        var 
barraReferenciaLocal:barra this;
        var 
fichero:XML = new XML();    
        
fichero.ignoreWhite true;
        
fichero.onLoad = function(success:Boolean)
        {
            if (
success
            {
                
barraReferenciaLocal.datos this;
                
barraReferenciaLocal .traza();
            }        
        }
        
fichero.load ("./Opciones.xml");
    }
    
    public function 
traza():Void 
    
{
        
trace(this.datos);
    }

Se supone que tienes que crear dentro de tu constructor una referencia local a un objeto de la misma clase y un objeto xml local que carga el xml.

Y luego a la carga de tu xml utilizas esa referencia local para acceder al objeto xml global de la clase.

Es un poco raro y yo no me explico muy allá.

Esto pasa a veces.

Si no te sirve tampoco ya no sé, porque no uso demasiado las clases :S

Para definir nombre en el constructor tienes que hacerlo poniendo this.nombre="lo que sea". porque si lo defines sólo como nombre será un String local del constructor creo yo...

Un saludo...

PD: la 'o' de 'objeto.xml' la has puesto en mayúscula a la llamada, supongo que el xml tb estará entonces en mayúscula... Y aunque te desesperes, es mejor que no pongas tacos en el título del topic, aunque eso no sea cosa que me concierna :S
__________________
[+]
[+]

Última edición por yoseman; 04/04/2008 a las 12:37
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:33.