Comunidad de diseño web y desarrollo en internet online

Cómo borrar un objeto del escenario sin disponer de su instancia

Citar            
MensajeEscrito el 08 Nov 2011 09:29 am
Sigo con dudas básicas. Espero ser de ayuda en algún momento.

Con un botón dibujo un vector (movieclip) sobre un eje de coordenadas. Cuando lo pulso quiero que se borre el anterior vector para mostrar uno nuevo.

Al entrar en el código el nombre de la instancia ya no existe, aunque la variable la declare fuera de la función.

Hay alguna manera de borrar el dibujo de ese primer vector?

Gracias.

Por sha34

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Nov 2011 10:08 am
Como lo estas dibujando? cual es el codigo? Quiza lo unico necesario sea

Código ActionScript :

instanciaDondeHasDibujado.graphics.clear();

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 08 Nov 2011 11:06 am
Con un botón añado un vector al escenario:
var f:Flecha=new Flecha(); //Flecha es un movieclip
addChild(f);
f.x=......//lo que introduzca el usuario;
f.y=......//

Con el mismo botón quiero borrar la anterior Flecha y dibujar una nueva pero al entrar de nuevo al código f ya no existe.

Gracias Acreonte.

Por sha34

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Nov 2011 11:25 am
f debiera estar declarada en la clase como privada:

Código ActionScript :

private var f:Flecha;
/**/


En la acción del botón agrega esto

Código ActionScript :

if (f) removeChild(f);
f = new Flecha();
....
/**/

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 08 Nov 2011 11:34 am
El código no está tan orientado a objetos, sería algo así en resumen:
import.....
function calcular(MouseEvent:Event):void
{
//Aquí me gustaría controlar: si existe ya una instancia de F => Borralá
private var v:Flecha=new Flecha();
addChild(v);
v.x=....;
v.y=.....;

}
but.addEventListener(MouseEvent.CLICK,calcular)

-------
v se pierde cada vez que se pulso el botón, entonces no sé como borrarlo

Por sha34

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Nov 2011 11:40 am
bueno declaralá en el mismo frame que agregas el listener al botón,,, seria así como quedaría:

Código ActionScript :

var v:Flecha;
function calcular(MouseEvent:Event):void
{
if (v) removeChild(v);
v=new Flecha();
addChild(v);
v.x=....;
v.y=.....;

}
but.addEventListener(MouseEvent.CLICK,calcular);

/**/


La POO no muerde,,,, jajja

Salu2



eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 08 Nov 2011 11:52 am
gracias eXe ahora me funciona. La cuestión era sacar la var tipo Flecha fuera de function. No sé muy bien cómo funcionan los ámbitos. De la manera que la has puesto es cómo si fuera una variable global a toda la aplicación?

Por sha34

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Nov 2011 12:06 pm
si programas en los frame en algún lugar tenes que declarar las variables.
esto no sucedería si usaras clases, porque tendrías mas restricciones al acceso de las variables.
.
Me alegro que te haya servido


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox

 

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