Comunidad de diseño web y desarrollo en internet online

Persistencia de objeto

Citar            
MensajeEscrito el 18 Ago 2008 06:42 pm
Hola estoy trabajando con flashcs3 y as3...
el asunto es que tengo un problema cuando creo un objeto Usuario y le asigno propiedades en el primer frame y luego mas adelante en el segundo o tercer frame ya no puedo acceder al objeto.

esta es mi clase

Código :

package clases{
   public class Usuario{
      public var uRut:String;
      public var uFec:String;
      function Usuario(rut:String,fec:String):void{
         this.uRut=rut;
         this.uFec=fec;
         }
      public function getRut():String{
         return uRut;
         }
      }
   
   }

en el primer frame tengo

Código :

stop();
import clases.Usuario;
function irSegundoFrame(e:Event):void{
   //this.root.gotoAndStop(2);
   var usuario:Usuario=new Usuario(rut.text, fec.text);
   trace(usuario.getRut());
   //trace(usuario.uRut);
   play();
   }
entrada.addEventListener(MouseEvent.CLICK,irSegundoFrame);


en el segundo frame tengo esto y me da error

Código :

stop();
//import clases.Usuario;

trace(usuario.getRut());

Por superscout

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ago 2008 07:09 pm
Cualquier variable que sea declarada dentro de la función será local, es decir solamente tendrá valor dentro de esta, por ejemplo:

Código ActionScript :

var myVariable:uint = 100;

function tellMe():void{

    var myVariable:uint = 0;
    trace(myVariable);

}
tellMe(); //Lanzará 0
trace(myVariable); //Lanzará 100


Por lo tanto es mejor que declares tu clase fuera de la función:

Código ActionScript :

var usuario:Usuario;

function irSegundoFrame(e:Event):void {

   usuario = new Usuario(rut.text, fec.text);
   trace(usuario.getRut());
   play();

}


Esta variable como ha sido declarada en el timeLine tendrá validez a lo largo de todo este.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Ago 2008 08:23 pm
diste en el clavo, muchas gracias

Por superscout

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ago 2008 08:54 pm
Sugerencia: combinar clases moviéndote en la línea de tiempo te dará bastante problemas. Considera olvidarte de la línea de tiempo y empezar a trabajar en un solo frame donde pones todas tus clases. El code desparramado por la línea de tiempo tiene una lógica distinta al escenario de una aplicación con clases. Por ejemplo, para que persista la variable, tienes que resignar el tipado, lo cual a la larga significa problemas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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