Comunidad de diseño web y desarrollo en internet online

MovieClip en AS3 para cargar imagenes externas

Citar            
MensajeEscrito el 01 Feb 2011 03:00 pm
un saludo a todos;
Estoy haciendo un cargador de fotos externas en AS3; en el que dentro del MC he puesto varias instancias o fotgramas con el codigo para que cargue la imagen y posteriormente tras unos segundos siga reproduciendose la linea de tiempo hasta llegar al siguiente fotograma con el codigo para cargar la siguiente imagen;
El caso es que no me funciona porque no me cargan las imagenes ( que he puesto en la misma carpeta que la Movie Principal; el codigo que he colado en los fotogramas dentro del MC es el siguiente:


/* CARGADOR
import flash.display.Loader;
import flash.net.URLRequest;

var loader:Loader = new Loader();


loader.load(new URLRequest("1.jpg"));

/* CONTADOR

var fl_TimerInstance_4:Timer = new Timer(1000, 15);
fl_TimerInstance_4.addEventListener(TimerEvent.TIM ER, fl_TimerHandler_4);
fl_TimerInstance_4.start();

var fl_SecondsElapsed_4:Number = 1;
function fl_TimerHandler_4(event:TimerEvent):void
{
trace("Segundos transcurridos: " + fl_SecondsElapsed_4);
fl_SecondsElapsed_4++;
}

play();


Alguien sabe el motivo por el cual no me cargan las imagenes y no me funciona el temporizador ????????????????

Ciao

Por alexander_sp

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Feb 2011 03:17 pm
bueno primero no te cargan las imágenes por que no hiciste el addChild del loader y segundo si lo que quieres es que cada determinado tiempo te cargue otra imagen no deberías hacerlo con varios frames dentro del MC, en el código que copiaste el contador funciona pero no tienes ningún if o algo que diga que hacer en que momento

Por el_putas

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Feb 2011 04:40 pm
Agradezco la respuesta el_putas;
mmmm........pero no tengo los suficientes conocimientos, en AS3 para modificar el codigo;
me podrías modificar el codigo, es que de lo contrario no soy capaz a resolver el problema.
Thanks very much...............

Por alexander_sp

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Feb 2011 06:00 pm
mira así seria dejando el contador como lo hiciste tu

Código ActionScript :

import flash.display.Loader;
import flash.net.URLRequest;

var loader:Loader = new Loader();
var numPhoto:int = 1

loader.load(new URLRequest("1.jpg"));
addChild(loader) //añades la foto
// CONTADOR

var fl_TimerInstance_4:Timer = new Timer(1000, 15);
fl_TimerInstance_4.addEventListener(TimerEvent.TIMER, fl_TimerHandler_4);
fl_TimerInstance_4.start();

var fl_SecondsElapsed_4:Number = 1;
function fl_TimerHandler_4(event:TimerEvent):void
{
   trace(fl_SecondsElapsed_4)
   if(fl_SecondsElapsed_4 == 3)
   {
      numPhoto++
      numPhoto %= 4 // para q empiece desde 0 otra vez cuando llegue a 4
      removeChild(loader)//eliminas la foto para poner una nueva
      loader.load(new URLRequest(numPhoto + ".jpg"));
      addChild(loader)//añades la nueva
      fl_SecondsElapsed_4 = 0//reinicias el contador
   }
   fl_SecondsElapsed_4++
}



Espero que te sirva así
Saludos

Por el_putas

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Feb 2011 06:45 pm
Ok.......solucionado.
Te lo agradezco.
un saludo

Por alexander_sp

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Abr 2011 12:56 pm
Alguien me podría indicar como hacer ésto mismo con un fade In/out (o fundido) entre fotos, para las transiciones.

Gracias.

Por emedmaria

73 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Abr 2011 01:27 pm
Pero lo quieres, para cuando el mouse pase por encima o para hacer simplemente la transicion de una foto a otra ???

Por alexander_sp

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Abr 2011 01:45 pm
en este punto

Código ActionScript :

removeChild(loader)//eliminas la foto para poner una nueva 
loader.load(new URLRequest(numPhoto + ".jpg")); 
addChild(loader)//añades la nueva 

antes de remover has el fadeOut y antes después de añadir has el fadeIn, te recomiendo q uses una librería como el TweenMax y así sabes cuando termina la animación. algo asi

Código ActionScript :

TweenMax.to(loader, 0.2, { alpha:0, onComplete:removeChildLoader } )
function removeChildLoader()
{
    removeChild(loader)
}

Por el_putas

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Abr 2011 08:42 pm
Gracias!
Pero hecho así hay un tiempo entre foto y foto en que se ve todo blanco...

Por emedmaria

73 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Abr 2011 01:24 pm
Claro q si, por q esperas a q se vaya uno para aparecer otro. Así:

Código ActionScript :

import flash.display.Loader; 
import flash.net.URLRequest; 
import gs.TweenMax
 
var loader:Loader = new Loader(); 
var numPhoto:int = 1 
 
loader.load(new URLRequest("http://cdn.iconfinder.net/data/icons/X-Mac/education_icons/png/48/teachers_day.png")); //foto de ejemplo
addChild(loader) //añades la foto 
// CONTADOR 
 
var fl_TimerInstance_4:Timer = new Timer(1000, 15); 
fl_TimerInstance_4.addEventListener(TimerEvent.TIMER, fl_TimerHandler_4); 
fl_TimerInstance_4.start(); 
 
var fl_SecondsElapsed_4:Number = 1; 
function fl_TimerHandler_4(event:TimerEvent):void 
{ 
   trace(fl_SecondsElapsed_4) 
   if(fl_SecondsElapsed_4 == 3) 
   { 
      numPhoto++ 
      numPhoto %= 4 // para q empiece desde 0 otra vez cuando llegue a 4 
     TweenMax.to(loader, 0.3, {alpha:0, onComplete:removes})
     function removes()
     {
        removeChild(loader)//eliminas la foto para poner una nueva 
           loader.load(new URLRequest("http://cdn.iconfinder.net/data/icons/X-Mac/education_icons/png/48/teachers_day.png")); //foto de ejemplo
        TweenMax.to(loader, 0, {alpha:0})
        TweenMax.to(loader, 0.3, {alpha:1})
        addChild(loader)//añades la nueva 
          fl_SecondsElapsed_4 = 0//reinicias el contador 
     }
      
      
   } 
   fl_SecondsElapsed_4++ 
} 



Aunq q si quieres hacer es q las dos fotos se superpongan en algún momento pues crea un nuevo Loader, aslo así:

Código ActionScript :

import flash.display.Loader; 
import flash.net.URLRequest; 
import gs.TweenMax
 
var loader:Loader = new Loader(); 
var numPhoto:int = 1 
 
loader.load(new URLRequest("http://cdn.iconfinder.net/data/icons/X-Mac/education_icons/png/48/teachers_day.png")); 
addChild(loader) //añades la foto 
// CONTADOR 
 
var fl_TimerInstance_4:Timer = new Timer(1000, 15); 
fl_TimerInstance_4.addEventListener(TimerEvent.TIMER, fl_TimerHandler_4); 
fl_TimerInstance_4.start(); 
 
var fl_SecondsElapsed_4:Number = 1; 
function fl_TimerHandler_4(event:TimerEvent):void 
{ 
   trace(fl_SecondsElapsed_4) 
   if(fl_SecondsElapsed_4 == 3) 
   { 
      numPhoto++ 
      numPhoto %= 4 // para q empiece desde 0 otra vez cuando llegue a 4 
     TweenMax.to(loader, 0.3, {alpha:0})
     
     loader = new Loader();
     loader.load(new URLRequest("http://files-cdn.formspring.me/profile/20110315/n4d9573989d89d_medium.gif")); 
     fl_SecondsElapsed_4 = 0//reinicias el contador 
      TweenMax.to(loader, 0, {alpha:0})
     TweenMax.to(loader, 0.3, {alpha:1})
      addChild(loader)//añades la nueva 
      
   } 
   fl_SecondsElapsed_4++ 
} 

Por el_putas

58 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Abr 2011 08:42 pm
Muchiiisimas gracias por la ayuda!
Me ha sido muy útil. He optado por la segunda opción :)

Por emedmaria

73 de clabLevel



 

firefox

 

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