Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/10/2006, 16:42
pablos
 
Fecha de Ingreso: febrero-2003
Mensajes: 40
Antigüedad: 21 años, 2 meses
Puntos: 0
Problema con datos privados de clase al instanciarla

Antes que nada Buenas noches!!!
Tengo un problema el cual realmente no supe resolver.

Este codigo que copio debajo es un testing al que llegue luego de limpiar completamente mi clase

En mi clase tengo una propiedad de tipo privada que es un objeto array
Esta propiedad es cargada por un metodo
public function agregar(asName:String)

El problema puntual es que al instanciar la misma clase creando 2 objetos diferentes la propiedad datos_array persiste en ambas, algo que seria logico en el caso de que el tipo de propiedad sea static, pero como se puede ver es private


Aqui debajo copio el codigo de la clase


////////////////////////
// inicio codigo clase ///
////////////////////////
Código:
class testingBug {
	private var datos_array:Array = new Array();
	public function testingBug() {
		trace("*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/");
		buscarDatoArray();
	}
	//
	public function buscarDatoArray() {
		trace("Busco datos en Array");
		trace("cantidad:"+datos_array.length);
		var cantidadSonidos:Number = datos_array.length;
		var sonidoName:String = null;
		for (var i:Number = 0; i<cantidadSonidos; i++) {
			trace("Busco Dato:"+i+"<<<<<");
			trace(datos_array[i]);
		}
	}
	//
	public function agregar(asName:String) {
		var mensaje = "";
		if (this.buscarDatoArray(asName) != undefined) {
			mensaje = "El string ya se encuentra registrado="+asName;
		} else {
			datos_array.push(asName);
			mensaje = "Dato registrado exitosamente: "+datos_array[datos_array.length-1];
		}
		trace(mensaje);
	}
}

////////////////////////
// fin codigo clase ///
////////////////////////


Luego en la linea de tiempo de mi pelicula fla instancio la clase y cargo datos de la siguiente manera

////////////////////////
// inicio codigo fla ///
////////////////////////
Código:
// instancia 1 de clase testingBug
var instancia1:testingBug = new testingBug(this);
instancia1.agregar("dato0");
instancia1.agregar("dato1");
instancia1.agregar("dato2");
instancia1.agregar("dato3");
instancia1.agregar("dato4");
// instancia 2 de clase testingBug
var instancia2:testingBug = new testingBug();
////////////////////////
// fin codigo fla ///
////////////////////////


Como se puede ver en el trace al ejecutar la pelicula al instanciarse por 2da vez la clase siguen existiendo todos los valores dentro del array "datos_array"


Si alguien sabe como solucionar esto o donde la estoy pifiando les agradecere la respeusta!!!

Saludos
Pablo