Comunidad de diseño web y desarrollo en internet online

Funciones privadas

Citar            
MensajeEscrito el 31 Ago 2006 12:46 pm
Hola. Tengo una duda en relación a las funciones privadas dentro de una clase.

Tengo por ejemplo, la siguiente clase:

Código :

class Prueba {
   //
   private var numero:Number;
   //
   function Prueba(num) {
      numero = num;
      getNum()
   }
   //
   private function getNum() {
      trace(numero);
   }
}

Tengo definidas como privadas la variable numero y la funcion getNum

Con el siguiente código:

Código :

boton.onRelease = function() {
   prueba.getNum();
   prueba.numero = 5
   prueba.getNum();
};

obtengo:

Código :

--10
--5

¿Como es posible que pueda acceder a la variable y a la funcion desde fuera de la clase siendo estas privadas? A ver si alguien me puede sacar de la duda...
gracias

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 31 Ago 2006 01:21 pm
Por más que lo intente no consigo hacer eso. Archivo Prueba.as:

Código :

class Prueba {
   //
   private var numero:Number;
   //
   function Prueba(num) {
      numero = num;
      getNum()
   }
   //
   private function getNum() {
      trace(numero);
   }
}

Tu code:

Código :

boton.onRelease = function() {
   prueba.getNum();
   prueba.numero = 5
   prueba.getNum();
};

No funciona, es Prueba y no prueba. Ahora hay dos posiblidades:

Código :

boton.onRelease = function() {
   Prueba.getNum();
   Prueba.numero = 5
   Prueba.getNum();
};

Da error porque no es una clase estática y porque pides funciones privadas.

Código :

var prob:Prueba=new Prueba()
boton.onRelease = function() {
   prob.getNum();
   prob.numero = 5
   prob.getNum();
};

Da error porque pides funciones privadas.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 31 Ago 2006 01:33 pm

zah escribió:

No funciona, es Prueba y no prueba.

Ya lo ponía bien. Pero se me olvidó colocar la última linea... donde definia la variable prueba. Sorry

Código :

boton.onRelease = function() {
   prueba.getNum();
   prueba.numero = 5;
   prueba.getNum();
};
var prueba = new Prueba(10);

lo que me he dado cuenta viento tu código es que poniendo:

Código :

var prueba:Prueba = new Prueba(10);

si que da error de datos privados, pero con

Código :

var prueba = new Prueba(10);

no...

¿sabes prque?

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 31 Ago 2006 09:34 pm
Pues no tengo ni idea... tiene pinta de bug. :?

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

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