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

Problema con cargador de imagenes

Estas en el tema de Problema con cargador de imagenes en el foro de Flash y Actionscript en Foros del Web. Hola a todos. Aqui vuelvo con un nuevo problema. A ver si consigo explicarlo para que me podais entender. Tengo un galeria con imagenes que ...
  #1 (permalink)  
Antiguo 16/09/2010, 04:23
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Problema con cargador de imagenes

Hola a todos. Aqui vuelvo con un nuevo problema. A ver si consigo explicarlo para que me podais entender.

Tengo un galeria con imagenes que tengo en la biblioteca, y las meto dentro de un cargador con un bucle for y la funcion load, y al final añado la galeria con un addChild, este es el codigo:

var arrayImg: Array = new Array('barco.jpg','campo.jpg','cascada.jpg','hielo .jpg','mar.jpg','montana.jpg','palmera.jpg');

var cX:Number = stage.stageWidth/2
var cY:Number = stage.stageHeight/2
var distX:uint = 320;

for( var i:uint = 0; i < arrayImg.length; i++ ){
var mcImg:MovieClip = new MovieClip();

mcImg.x = cX + ( distX * i );
mcImg.y = cY;

mcImg.origenX = mcImg.x;
var imgLdr:Loader = new Loader();
imgLdr.contentLoaderInfo.addEventListener( Event.COMPLETE, fCentrarImagen );
imgLdr.load( new URLRequest( arrayImg[ i ] ) );
mcImg.addEventListener( Event.ENTER_FRAME, fDesplazar );
mcImg.addChild( imgLdr );
addChild( mcImg );
}


hasta aqui, todo bien, se carga correctamente.

Ademas cargo 2 botones de navegacion para desplazarme por las imagenes:

addChild( btn_retroceder );
addChild( btn_avanzar );


Tengo un boton de cerrar, que me vuelve al inicio. Pero cuando vuelvo el cargador sigue con las imagenes y no se ve el menu principal del inicio.

he probado a poner en el boton un removeChild (mcImg) pero no me funciona, y tampoco la funcion unload();

este es el codigo del boton

function irInicio (event:MouseEvent):void{
//removeChild(mcImg);
removeChild( btn_retroceder );
removeChild( btn_avanzar );
play();
}

cerrar_mc.addEventListener(MouseEvent.CLICK, irInicio);


los botones los quita, y no se ven, pero la galeria sigue ahi.

Espero haberme explicado y si alguien me puede echar una mano porque no encuentro solucion, lo agradeceré mucho :P... y seguro que es una tonteria, pero no consigo verlo...
  #2 (permalink)  
Antiguo 16/09/2010, 04:28
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema con cargador de imagenes

Hola
bueno, pues tu código se ve bien, yo solo haría que en la función
irInicio se descargue lo que tienes en comentario, y
se de valor true a una variable booleana que te sugiero crear
al inicio del código asignando false (esto para que sea global)
y en el for, antes le pondría un if preguntando que si dicha
variable booleana es false, entonces que entre al for y haga lo suyo,
en caso contrario, no debería entrar (podrías poner un else para probar)
tal vez se me este escapando algo pero se escapó pues no se me ocurre
prueba y nos comentas
saludos

p.d: ha, lo que se me escapaba era que removieras los listeners que asignas en el for
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 16/09/2010, 04:31
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Sonrisa Respuesta: Problema con cargador de imagenes

gracias morti, voy a ponerme a ello a ver si consigo que funcione.

En seguida sabremos si con eso vale o me tengo que estujar los sesos a ver como lo puedo solucionar :)
  #4 (permalink)  
Antiguo 16/09/2010, 04:46
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con cargador de imagenes

Bueno, he probado y no consigo que funcione, quiza lo he entendido mal

Se trata de crear una variable boleana al inicio del codigo que este por defecto en false. Y cuando cambie a true, que entre el bucle for en accion y cargue las imagenes.

La duda que me surge es... como hago para cambiar la variable a true o false, dependiendo de si ya se han cargado las imagenes o quiero volver al inicio. porque la opcion que se me ocurre es añadir al boton una linea que seria, si presiono el boton cambio la variable a false de nuevo y por tanto no deberia entrar en el bucle, pero como ya esta creado...

en fin, que me estoy armando un atasco yo solo... que creo que me estoy equivocando y no hago bien ese paso...
  #5 (permalink)  
Antiguo 16/09/2010, 05:02
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema con cargador de imagenes

Cita:
Iniciado por Fran1985 Ver Mensaje
Bueno, he probado y no consigo que funcione, quiza lo he entendido mal

Se trata de crear una variable boleana al inicio del codigo que este por defecto en false. Y cuando cambie a true, que entre el bucle for en accion y cargue las imagenes.

La duda que me surge es... como hago para cambiar la variable a true o false, dependiendo de si ya se han cargado las imagenes o quiero volver al inicio. porque la opcion que se me ocurre es añadir al boton una linea que seria, si presiono el boton cambio la variable a false de nuevo y por tanto no deberia entrar en el bucle, pero como ya esta creado...

en fin, que me estoy armando un atasco yo solo... que creo que me estoy equivocando y no hago bien ese paso...
jajaja, bueno, yo decía al revés, que cuando sea false entre al for, y cuando presiones el botón de cerrar esa variable pase a true, y en esa misma función (irInicio) descargues el movieclip que tienes en comentario

has esa prueba y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 16/09/2010, 05:12
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con cargador de imagenes

jajajaja, vale vale, ahora lo he entendido XDD demasiadas horas seguidas con esto... al final no razono

lo probare y comento a ver que tal ;)
  #7 (permalink)  
Antiguo 16/09/2010, 06:33
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con cargador de imagenes

hola de nuevo, he creado la variable segun tu consejo morti. Queda el codigo asi, sin crear el removeChild:

creo la variable

var boleana:Boolean = false;

function irInicio (event:MouseEvent):void{
removeChild( btn_retroceder );
removeChild( btn_avanzar );
boleana = true;
play();
}

cerrar_mc.addEventListener(MouseEvent.CLICK, irInicio);


creo el if con el for si la boleana es false

if(boleana = false){
for( var i:uint = 0; i < arrayImg.length; i++ ){
var mcImg:MovieClip = new MovieClip();


mcImg.x = cX + ( distX * i );
mcImg.y = cY;

mcImg.origenX = mcImg.x;
var imgLdr:Loader = new Loader();
imgLdr.contentLoaderInfo.addEventListener( Event.COMPLETE, fCentrarImagen );
imgLdr.load( new URLRequest( arrayImg[ i ] ) );
mcImg.addEventListener( Event.ENTER_FRAME, fDesplazar );
mcImg.addChild( imgLdr );
addChild( mcImg );
}
}


el problema es que ahora no me carga la galeria de imagenes

no se si me falta algo... pero no caigo que puede ser...
  #8 (permalink)  
Antiguo 16/09/2010, 14:34
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema con cargador de imagenes

Cita:
Iniciado por Fran1985 Ver Mensaje
hola de nuevo, he creado la variable segun tu consejo morti. Queda el codigo asi, sin crear el removeChild:

creo la variable

var boleana:Boolean = false;

function irInicio (event:MouseEvent):void{
removeChild( btn_retroceder );
removeChild( btn_avanzar );
boleana = true;
play();
}

cerrar_mc.addEventListener(MouseEvent.CLICK, irInicio);


creo el if con el for si la boleana es false

if(boleana = false){
for( var i:uint = 0; i < arrayImg.length; i++ ){
var mcImg:MovieClip = new MovieClip();


mcImg.x = cX + ( distX * i );
mcImg.y = cY;

mcImg.origenX = mcImg.x;
var imgLdr:Loader = new Loader();
imgLdr.contentLoaderInfo.addEventListener( Event.COMPLETE, fCentrarImagen );
imgLdr.load( new URLRequest( arrayImg[ i ] ) );
mcImg.addEventListener( Event.ENTER_FRAME, fDesplazar );
mcImg.addChild( imgLdr );
addChild( mcImg );
}
}


el problema es que ahora no me carga la galeria de imagenes

no se si me falta algo... pero no caigo que puede ser...
bueno, en efecto te falta algo, y es que en el if,
estas asignando, no comparando, debería ser


if(boleana == false){

espero sirva
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 16/09/2010, 18:20
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con cargador de imagenes

buff, tienes razon morti, un despiste de lo mas tonto

vale, ahora que estoy comparando la variable... el resultado es que carga la galeria, pero sigue sin descargar al pulsar el boton de cerrar.

descomenté la linea del removeChild y queda asi:

var boleana:Boolean = false;

function irInicio (event:MouseEvent):void{
removeChild( btn_retroceder );
removeChild( btn_avanzar );
boleana = true;
removeChild( mcImg );
play();
}

cerrar_mc.addEventListener(MouseEvent.CLICK, irInicio);



y el codigo del if:

if(boleana == false){
for( var i:uint = 0; i < arrayImg.length; i++ ){
var mcImg:MovieClip = new MovieClip();


mcImg.x = cX + ( distX * i );
mcImg.y = cY;

mcImg.origenX = mcImg.x;
var imgLdr:Loader = new Loader();
imgLdr.contentLoaderInfo.addEventListener( Event.COMPLETE, fCentrarImagen );
imgLdr.load( new URLRequest( arrayImg[ i ] ) );
mcImg.addEventListener( Event.ENTER_FRAME, fDesplazar );
mcImg.addChild( imgLdr );
addChild( mcImg );
}
}


he probado tambien a añadir un else para que si la variable es true quite el movieclip, pero tampoco funciona, y yo ya no se que mas puedo intentar.

he probado la funcion unload y tampoco va... es como si se quedara la galeria ahi permanentemente y no se pudiera quitar :S
  #10 (permalink)  
Antiguo 16/09/2010, 20:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema con cargador de imagenes

uhmm esta la galeria a su vez dentro de un mc?
por ej, intenta mc.removeChild(galeria) si fuese así

de lo contrario, intenta con Stage.removeChild(mc)

si persiste el asunto, intenta no a descargarlo
sino a jugar con la propiedad visible del mc

espero te sirva
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 17/09/2010, 03:01
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con cargador de imagenes

Pues nada, que lo he probado y seguimos igual, ademas sale este error cuando pulso el boton de cerrar.

ArgumentError: Error #2025: El objeto DisplayObject proporcionado debe ser un elemento secundario del llamador.
at flash.display::DisplayObjectContainer/removeChild()
at greensorb_fla::MainTimeline/irInicio2()

el mc lo creo directamente con el codigo:


var imgLdr:Loader = new Loader();
imgLdr.contentLoaderInfo.addEventListener( Event.COMPLETE, fCentrarImagen );
imgLdr.load( new URLRequest( arrayImg[ i ] ) );


lo de jugar con la propiedad visible del mc no tengo ni idea de como hacerlo...

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
se me ha ocurrido algo y es asignar todo el bucle for a una variable y quitar la variable con removeChild. Pero no se como podria hacerlo para utilizar un tipo de variable valido. Me explico:

crear la variable:

var galeria:tipo de variable

galeria = for(){}

se que me faltan cosas pero no se que tipos y metodos usar para este caso...

Última edición por Fran1985; 17/09/2010 a las 03:52
  #12 (permalink)  
Antiguo 17/09/2010, 08:59
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema con cargador de imagenes

Hola
bueno, pues en el array de imagenes, tienes hielo.jpg con un espacio, revisa eso
para lo otro, tu idea no se que tan factible sea, pero en base a eso recorde una vieja
táctica, y es crear otro array, y en el for que ya tienes, asignarle el movieclip actual que se
esta creando, y luego en la función del botón cerrar, hacer otro for que recorra dicho array
y descargue los movieclips que contiene, así las cosas se tendría esto

Código actionscript:
Ver original
  1. //declarada luego de distX
  2. var array:Array = new Array();
  3.  
  4. //luego, dentro del for que ya se tiene
  5. array[i] = mcImg;
  6. //y finalmente, en la función irInicio
  7.     for(var i:uint=0;i<array.length;i++){
  8.         removeChild(array[i]);
  9.     }

espero os sirva
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #13 (permalink)  
Antiguo 17/09/2010, 09:52
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia, Spain, Spain
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con cargador de imagenes

buaaaa, muchisimas gracias, ahora si que funciona. estaba pensando como ultimo recurso crear la galeria en un archivo externo de flash y cargarlo en un mc vacio y asi lo puedo eliminar, pero con esto va de lujo

Gracias por todo :D

Etiquetas: cargador, imagenes
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 09:43.