Foros del Web » Creando para Internet » Flash y Actionscript »

Inicializar array. "Vaciarlo"

Estas en el tema de Inicializar array. "Vaciarlo" en el foro de Flash y Actionscript en Foros del Web. Buenas: ¿Cual es el método para "vaciar" un array de datos en AS3? Necesito inicializar unos arrays que ya uso en el código y dejarlos ...
  #1 (permalink)  
Antiguo 09/12/2008, 04:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 9 años, 2 meses
Puntos: 0
Inicializar array. "Vaciarlo"

Buenas:

¿Cual es el método para "vaciar" un array de datos en AS3?

Necesito inicializar unos arrays que ya uso en el código y dejarlos como arrays, pero vacíos.

Muchas gracias...
  #2 (permalink)  
Antiguo 09/12/2008, 06:50
Avatar de undess  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 84
Antigüedad: 10 años
Puntos: 1
Respuesta: Inicializar array. "Vaciarlo"

Hola, yo he usado esto y me ha funcionado:

Código:
var _miArray:Array = new Array();
_miArray = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 

trace(_miArray); // Nos devuelve 1, 2, 3, 4, 5, 6, 7, 8, 9

_miArray = new Array();

trace(_miArray) // No nos devuelve nada
Espero que te sirva. Un saludo.
__________________
El hombre, en su orgullo, creó a Dios a su imagen y semejanza.
undess blog
  #3 (permalink)  
Antiguo 10/12/2008, 02:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Inicializar array. "Vaciarlo"

Muchas Gracias UNDESS. El problema que tengo, es que los arrays los declaro como Public, ya que los uso en diferentes funciones. ¿Como puedo hacer para inicializarlos en cada ejecución? Todo el código se ejecuta al pulsar un botón, pero mis arrays los declaro fuera de ese botón...creo que me estoy haciendo un lío....
  #4 (permalink)  
Antiguo 10/12/2008, 04:57
Avatar de undess  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 84
Antigüedad: 10 años
Puntos: 1
Respuesta: Inicializar array. "Vaciarlo"

Hola, si cada vez que pulses el boton quieres limpiar el array, la manera es la misma.

Aqui te pongo el código de una clase que crea el array, le asigna los datos y que llama a un boton que al pulsarlo limpia el array y nos lo muestra.


Código:
package
{
	import flash.display.Sprite
	import flash.events.MouseEvent
	
	
	public class ClearArray extends Sprite
	{
		public var _myArray:Array = new Array();
		
		public function ClearArray()
		{
			_myArray = ["valor 1", "valor 2", "valor 3", "valor 4"]
			trace("Array recien cargado: "+_myArray);
			
			this["btn"].addEventListener(MouseEvent.CLICK, clearArray);
		}
		
		private function clearArray(e:MouseEvent):void
		{
			_myArray = new Array()
			trace("Array recien reiniciado: "+_myArray);
		}
	}
}
Ya comentas si te sirve. Un saludo.
__________________
El hombre, en su orgullo, creó a Dios a su imagen y semejanza.
undess blog
  #5 (permalink)  
Antiguo 10/12/2008, 05:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Inicializar array. "Vaciarlo"

Hola de nuevo:

A ver UNDESS, algo debo estar haciendo mal, porque no logro que los arrays se me pongan a 0.

Lo he hecho igual que en tu ejemplo.
Primero, como variables publicas,declaro los diferentes arrayCollections que voy a usar por todo el código.

var horas:ArrayCollection = new ArrayCollection();
var horas2:ArrayCollection = new ArrayCollection();
var horas3:ArrayCollection= new ArrayCollection ();
var horas4:ArrayCollection = new ArrayCollection();
var horas5:ArrayCollection = new ArrayCollection();

Luego en el botón tengo asignadas varias funciones, pero la primera, se llama borrar y es esta:

private function borra():void{
var horas:ArrayCollection = new ArrayCollection();
var horas2:ArrayCollection = new ArrayCollection();
var horas3:ArrayCollection= new ArrayCollection ();
var horas4:ArrayCollection = new ArrayCollection();
var horas5:ArrayCollection = new ArrayCollection();
}

Lo que pasa es que en la primera ejecución (clic al botón) los arrays se me cargan da datos (hasta ahí bien) pero la segunda vez (otro click al boton), entra bien en la funcion "borra", pero los arrays siguen con los datos, por lo que termina con el doble de valores...

¿Que estoy haciendo mal?

Muchas gracias de nuevo y perdona las molestias.
  #6 (permalink)  
Antiguo 10/12/2008, 06:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Inicializar array. "Vaciarlo"

Bueno, creo que he dado con la solución, por lo menos para mi caso particular.

He descubierto el modificador removeAll(); para los arrays, por lo que los vacio en cada ejecución y consigo lo que quería. Mi función "borrar" quedaría así:

private function borra():void{
horas.removeAll();
horas2.removeAll();
horas3.removeAll();
horas4.removeAll();
horas5.removeAll();
}

Un milón de gracias...
  #7 (permalink)  
Antiguo 10/12/2008, 06:52
Avatar de undess  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 84
Antigüedad: 10 años
Puntos: 1
Respuesta: Inicializar array. "Vaciarlo"

Tambien podia pasar que en la funcion borrar no apuntabas a los arrays que te habías creado si no que creabas otros dentro de la funcion borrar ya que los declarabas con var.

seria:

private function borra():void{
horas = new ArrayCollection();
horas2 = new ArrayCollection();
horas3 = new ArrayCollection ();
horas4 = new ArrayCollection();
horas5 = new ArrayCollection();
}


te lo digo para futuros trabajos por si te interesaba. Un saludo
__________________
El hombre, en su orgullo, creó a Dios a su imagen y semejanza.
undess blog
  #8 (permalink)  
Antiguo 10/12/2008, 07:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Inicializar array. "Vaciarlo"

Muy cierto.

Muchas Gracias por tu ayuda.

Sigo "haciéndome" con Flex....

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:27.