Comunidad de diseño web y desarrollo en internet online

Detener-Borrar carga de imagenes

Citar            
MensajeEscrito el 22 Nov 2011 05:25 pm
Hola,

tengo una presentación de imagenes cargada desde xml con as3,

me cree un baner de la clase Sprite:

var baner:Sprite = new Sprite();
addChild(baner);

y luego cargo las imagenes:

var loader:Loader = new Loader();
-
var urlloader:URLLoader = new URLLoader();
urlloader.load(new URLRequest("imagenes.xml"));
-
-
y con varias funciones voy cargando las imagenes y se las paso al baner
-
-
-
(no pongo todo el codigo)

Esto funciona perfecto, ninguna queja, las imagenes se van mostrando una detra de otra infinitamente, bien :)

Tengo un botón que mi intención es crearle una instancia para que cuando pulse en el se detengan las imagenes, se borren, en fin, que se quede todo en blanco como si no hubiera nada.

He estado mirando por ahi y probando varios codigos pero no doy con ello,

¿ Alguna idea-ayuda ?

Gracias y saludos.

Por El_halcon_83

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Nov 2011 09:25 pm
Básicamente debes destruir el contenedor en donde estés poniendo las fotos con removeChild

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Nov 2011 07:56 pm
Sip, el removeChild funciona perfect para este caso :)

Ahora lo que busco, esque al darle a una tecla, por ejemplo el espacio, me cierre mi presentación de fotos y vuelva a empezarla desde el principio, pero en vez de eso lo que hace es empezar la presentación de nuevo pero a muchas más velocidad, como descontrolado.

Os pego todo el codigo a ver:

Código ActionScript :

var velocidad:Number;
var total:Number;
var imagenes:XMLList; 

var array:Array = [];
var contador:Number = 0;
var playback_contador:Number = 0;

var banner:Sprite = new Sprite();
var imagenes_banner:Sprite = new Sprite();

var tiempo:Timer;
var my_prev_tween:Tween;
 
var xml_loader:URLLoader = new URLLoader();
xml_loader.load(new URLRequest("imagenes.xml"));
xml_loader.addEventListener(Event.COMPLETE, processXML); 

function processXML (e:Event):void{

   var xml:XML = new XML(e.target.data); 
   velocidad=xml.@SPEED; 
   imagenes=xml.IMAGE; 
   total=imagenes.length();
   
   loadImages();
 
}

function loadImages():void{
    for (var i:Number = 0; i < total; i++){ 

      var url:String = imagenes[i].@URL;
       var loader:Loader = new Loader();
       loader.load(new URLRequest(url));
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
      array.push(loader); 

    } 
}
function onComplete(e:Event):void{

     contador++;
     if (contador == total){
         startShow();
    }

} 
function startShow():void{
   addChild(banner);
    banner.addChild(imagenes_banner);
   
   nextImage();
   
   tiempo = new Timer(velocidad*2000);
   tiempo.addEventListener(TimerEvent.TIMER, timerListener); 
   tiempo.start();

}
function nextImage():void{

    var mi_imagen:Loader = Loader(array[playback_contador]);
    imagenes_banner.addChild(mi_imagen); 
   new Tween(mi_imagen,"alpha",Strong.easeOut,0,1,1,true);

} 
function timerListener (e:TimerEvent):void{

   hidePrev();

   playback_contador++;
   if (playback_contador == total){
       playback_contador = 0;
    } 

    nextImage();
 
} 
function hidePrev():void{

    var mi_imagen:Loader=Loader(imagenes_banner.getChildAt(0)); 
    my_prev_tween = new Tween(mi_imagen,"alpha",Strong.easeOut,1,0,1,true);
    my_prev_tween.addEventListener(TweenEvent.MOTION_FINISH, onFadeOut);

} 
function onFadeOut(e:TweenEvent):void{
   imagenes_banner.removeChildAt(0);

}

stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey);
function onKey(event:KeyboardEvent):void {
   if (evt.keyCode == Keyboard.SPACE) {
         cerrar_presentacion();
   }
}
function cerrar_presentacion(){
   removeChild(banner);
   gotoAndPlay(1);
}
stop();

Por El_halcon_83

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Nov 2011 02:01 pm
No basta con volver al fotograma en eonde empieza todo, hay que asegurarse que se limpien los eventos y callbacks que haya dando vuelta. Por ejemplo, tienes un Timer corriendo llamado tiempo ... ¿lo has reiniciado?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Nov 2011 12:05 pm
Cierto Jorge, eso era, mil gracias :)

Ahora parece que ya funciona bien, he puesto un tiempo.stop();

Saludos

Por El_halcon_83

8 de clabLevel



 

msie

 

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