Flash - Problema con datos privados de clase al instanciar

 
Vista:

Problema con datos privados de clase al instanciar

Publicado por Pablo (1 intervención) el 13/10/2006 00:48:52
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 ///
////////////////////////
[code]
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);
}
}
[/code]

////////////////////////
// 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 ///
////////////////////////
[code]
// 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();
[/code]
////////////////////////
// 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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder