Comunidad de diseño web y desarrollo en internet online

imagenes random en as3

Citar            
MensajeEscrito el 28 Ene 2014 11:40 am
Que tal todos, tengo un pequeño problema con un codigo en as3.

Resulta que quiero poner un background en una pagina web donde pasen imagenes al azar, el punto es que cada vez que abran la pagina aparezca una imagen distinta al inicio.
Encontre un tutorial de como hacer eso en esta pagina, el post se llama "Banners e imagenes aleatorias en Flash MX" el problema es que el codigo que viene ahi es para as2.
El codigo que viene ahi es muy sencillo:

Código :

imagenes_mc.loadMovie("ima00" + (1+random(5)) + ".jpg");


Yo encontre un codigo para as3 que dice asi:

Código :

var ImgReq01:URLRequest=new URLRequest("image/ima01.jpg");
var ImgReq02:URLRequest=new URLRequest("image/ima02.jpg");
var ImgReq03:URLRequest=new URLRequest("image/ima03.jpg");
var ImgReq04:URLRequest=new URLRequest("image/ima04.jpg");

var imgList:Array=[ImgReq01,ImgReq02,ImgReq03,ImgReq04];

var imgRandom = imgList[Math.ceil(Math.random()* imgList.length)];

var imgLoader:Loader = new Loader();
imgLoader.load(imgRandom);

imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void 
{
  var randomImage:Bitmap = Bitmap(imgLoader.content);
  randomImage.x=100;
  randomImage.y=100;
  addChild(randomImage);
  event.currentTarget.removeEventListener(Event.COMPLETE, onComplete);
}


Este codigo funciona bien, excepto por un error que tira cada vez que intenta abrir una imagen, aclaro, solo bota el error con una de las 4 imagenes que tengo (ya la cambie y le hice de todo, pero sigue igual), las otras imagenes si las carga bien.

El error que sale es:

TypeError: Error #2007: Parameter request must be non-null.
at flash.display::Loader/_load()
at flash.display::Loader/load()
at imagenrandom_fla::MainTimeline/frame1()

Quizas sea por algo muy tonto, no lo se, tengo poco en as3.

Espero me puedan ayudar con esto, saludos.

Por kdtsteak

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ene 2014 10:53 pm
Siempre la misma imagen? Probaste cambiarla por otra?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Ene 2014 01:00 pm
si ya probe con otras imagenes, incluso quitando la imagen, pero sigue saliendo el mismo error, lo que me da a pensar que no es la imagen, si no algo en el codigo.

Encontre este otro codigo que funciona a la perfeccion:

Código :

var imgList:Array = ["pic2.jpg","pic3.png","pic4.png"];

var myLoader:Loader = new Loader();
myLoader.load(new URLRequest("inicio.png"));
addChild(myLoader);

var timer:Timer = new Timer(8000);
timer.start();
timer.addEventListener(TimerEvent.TIMER,rpic);

function rpic(event:TimerEvent):void
{
   var rno = Math.random();
   if(rno>=.5){var mypic = imgList.shift()}else {mypic=imgList.pop()}
   
   var myRequest:URLRequest = new URLRequest(mypic);
   myLoader.load(myRequest);
   removeChild(myLoader);
   addChild(myLoader);
   
   if (imgList.length==0){imgList.push("pic2.jpg","pic3.png","pic4.png")}
   
}


Como digo este codigo funciona muy bien y sin problemas, solo que no inicia con una imagen random, si no que siempre inicia con la imagen "inicio.png"

Hay forma de que inicie con una imagen diferente cada ves que se abre la pagina?

Ya intente de todo lo que yo se y nada :/

Por kdtsteak

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Ene 2014 02:10 pm
Prueba

Código ActionScript :

var ran:int = int(imgList.length*Math.random())
myLoader.load(new URLRequest(imgList[ran]));


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ene 2014 06:50 am
Funciona perfecto, muchas gracias Jorge, eres un maestro!.

Ya solo quite esta linea que no es necesaria:

Código :

myLoader.load(new URLRequest("inicio.png"));


Gracias nuevamente Jorge, pueden cerrar el tema si gustan.

Por kdtsteak

1 de clabLevel



 

firefox

 

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