Comunidad de diseño web y desarrollo en internet online

AS2 clases y funciones

Citar            
MensajeEscrito el 30 Oct 2010 03:46 pm
Buen dia tengo una inquietud acerca del manejo de funciones o métodos llamando a otras funciones.
El asunto es el siguiente tengo una clase y dentro tengo dos funciones aparte del constructor y desde la funcion1 llamo la funcion2 a traves de un boton, pero no me la toma esto es una ej:

Este es el codigo de la clase

Código ActionScript :

class Prueba
{
   function Prueba()
   {
   }
   
   function myFuncion1(mensaje, boton)
   {
      boton.onRelease = function()
      {
         myFuncion2(mensaje);//llamando la funcion myFuncion2, no se el nivel en que esta
      }
   }
   function myFuncion2(mensaje)
   {
      trace ("el mensaje es: "+mensaje);
   }
}


y esta es la forma en que la Instancio desde el frame

Código ActionScript :

var miPrueba:Prueba = new Prueba();
miPrueba.myFuncion1("que hay de nuevo viejo", myBoton);


Gracias por su colaboracion

Por Maurox

42 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 30 Oct 2010 07:42 pm
Ya encontre la solucion y la explicacion es debido al Ambito de las variables

Código ActionScript :

class Prueba
{
   function Prueba()
   {
   }
   
   function myFuncion1(mensaje, boton)
   {
      var myRut = this; ///Aqui esta el truco asignarle a una variable el ambito de la funcion desde la que se llamara la otra funcion
      boton.onRelease = function()
      {
         myRut.myFuncion2(mensaje);
      }
   }
   function myFuncion2(mensaje)
   {
      trace ("el mensaje es: "+mensaje);
   }
}


Alguien sabrá explicarlo mejor, pero creo que es asi:
se debe conservar el ambito de la funcion1 que llama a la funcion2 para que ese sea el punto de partida del nivel al momento de invocarla y pueda referirse a la raiz de la clase.

Por Maurox

42 de clabLevel



Genero:Masculino  

Colombia

firefox

 

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