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

3 preguntas sobre ActionScript

Estas en el tema de 3 preguntas sobre ActionScript en el foro de Flash y Actionscript en Foros del Web. 1) Cita: Iniciado por -=ArgoN=- He creado este script para rellenar el fondo de un escenario a base de 256 barritas: (el escenario tiene 1280 ...
  #1 (permalink)  
Antiguo 19/11/2005, 17:18
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
3 preguntas sobre ActionScript

1)
Cita:
Iniciado por -=ArgoN=-
He creado este script para rellenar el fondo de un escenario a base de 256 barritas: (el escenario tiene 1280 de ancho)
Código:
for (x=0; x<=1275; x=x+5) {
	MC.duplicateMovieClip("MC"+(x/5+1), x/5+1);
	this["MC"+(x/5+1)]._x = x;
	loadMovie("bg.jpg", "MC"+(x/5+1));
}
Funciona a la perfeccion, lo unico es que queria combinarlo con una variable cargada desde un .txt:
Código:
bg = new LoadVars();
bg.load("bg.txt");
bg.onLoad = function(success) {
	if (success) {
		z = this.bg;
		for (x=0; x<=1275; x=x+5) {
			MC.duplicateMovieClip("MC"+(x/5+1), x/5+1);
			this["MC"+(x/5+1)]._x = x;
			loadMovie("bg"+z+".jpg", "MC"+(x/5+1));
		}
	} else {
		txt = "Error";
	}
};
Mediante el segundo script queria lograr que en funcion del contenido de dentro del .txt cargara bg1.jpg, bg2.jpg, etc...
Pero lo he probado y solo carga la primera barrita. ¿Alguien sabria decirme el porque?
2)
Cita:
Iniciado por -=ArgoN=-
Se pueden cambiar las coordenadas de un MC cargado en un nivel N??
O lo que seria equivalente: ¿¿puedo cambiar el indice Z (traerlo al frente) de un .swf cargado en un MC vacio mediante loadMovie("URL",MC)??
3)
Cita:
Iniciado por -=ArgoN=-
¿Como consigo el valor del ancho (_width) de una imagen .jpg cargada con loadMovie?
Para facilitar el entendimiento podeis referiros a la pregunta 1, 2 o 3. Os estare muy agradecido si me contestais a alguna de ellas

Saludos,

ArgoN

Última edición por -=ArgoN=-; 19/11/2005 a las 17:24
  #2 (permalink)  
Antiguo 19/11/2005, 21:31
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
bueno, te contesto la 2, para cambiar las cordenadas de un MC cargado dentro de otro MC, pues solo cambiaselas al primer MC algo asi

MC._x = 100;
MC._y = 120;

OK, luego para pasarlo arriba de otro MC unicamente necesitas cambiar la profundidad asi:

MC.swapDepths(otroMC);

y el MC se pasara encima de otroMC

bueno, espero te funcione!!
  #3 (permalink)  
Antiguo 20/11/2005, 02:20
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 1 mes
Puntos: 0
la respuesta a la 3 es que el _width y _height de una imagen .jpg cargada con load Movie
los obtienes preguntando el _width y el _height del clip donde los cargaste
pero solo te daran diferentes de 0 cuando se alla terminado de cargar el .JPG

seria una cosa asi

Código:
mc_cont.loadMovie("archivo.jpg")
this.onEnterFrame=function(){
       if (mc_cont.getBytesTotal()>4 && mc_cont.getBytesLoaded()==mc_cont.getBytesTotal()){
           trace(mc_cont_width)
           delete this.onEnterFrame
      }
}
pregunto dos cosas
si los bytes cargados del mc_cont son iguales a los totales
y tb pregunto si los bytes cargados del mc_cont son mayor a 4 (peso de un clip vacio)
porque hay unos instantes luego de llamar al loadMovie
en el que el mc_cont tiene 4 bytes totales
y en ese momento sus bytes cargados son igual a los totales
pero tu solo quieres preguntar el ancho cuanod se alla terminado de cargar
el archivo que llamaste con loadMovie

entonces por eso los dos condicionales
si los bytestotales del clip mc_cont son mayores a 4 (me lo explicaron el otro dia en un foro eso)
y si los bytescargados del clip mc_cont son iguales a los totales del mc_cont
entonces ahi preguntas el _width o el _height del clip mc_cont
y te devolvera los datos del .JPG cargado en ese clip

sldos
__________________
...
.....todos somos muy ignorantes
...lo que ocurre es que
......no todos ignoramos las mismas cosas
:-D
...

:: jack experimentos ::
:: jack fotografias ::
:: jack fotografias 2 ::
  #4 (permalink)  
Antiguo 20/11/2005, 11:06
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Cita:
Iniciado por stock
para cambiar las cordenadas de un MC cargado dentro de otro MC, pues solo cambiaselas al primer MC algo asi

MC._x = 100;
MC._y = 120;
Gracias por responder pero lo que yo queria es cambiar las coordenadas de un MC cargado en un nivel (no en otro MC como tu dices, eso ya se hacerlo)

Lo de MC.swapDepths(otroMC); lo probare pero dudo que me sirva porque lo que ocurre es que tengo un MC en donde cargo un .jpg y luego voy duplicando este MC para rellenar un fondo de manera que cada trocito del fondo es este mismo MC duplicado y colocado en un nivel determinado. Entonces lo que hago es cargar el MC principal (la web entera) en un MC vacio y aqui viene el problema, resulta que el indice z (el nivel) del MC principal cargado es inferior a todos los MCs del fondo y solo se me ve el fondo
Eso pasa porque no se como cambiar el indice z de un MC cargado en un MC vacio ni tampoco se como cambiar las coordenadas de un MC cargado en un nivel. ¿Si hago una cosa no puedo hacer la otra?

Cita:
Iniciado por webgeri
el _width y _height de una imagen .jpg cargada con load Movie los obtienes preguntando el _width y el _height del clip donde los cargaste pero solo te daran diferentes de 0 cuando se alla terminado de cargar el .JPG

seria una cosa asi

Código:
mc_cont.loadMovie("archivo.jpg")
this.onEnterFrame=function(){
       if (mc_cont.getBytesTotal()>4 && mc_cont.getBytesLoaded()==mc_cont.getBytesTotal()){
           trace(mc_cont_width)
           delete this.onEnterFrame
      }
}
Voy a probarlo. No se me habia ocurrido lo de rojo por eso siempre me daba 0...

Gracias y saludos igualmente,

ArgoN
  #5 (permalink)  
Antiguo 20/11/2005, 12:04
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Cita:
Iniciado por webgeri
Código:
mc_cont.loadMovie("archivo.jpg")
this.onEnterFrame=function(){
       if (mc_cont.getBytesTotal()>4 && mc_cont.getBytesLoaded()==mc_cont.getBytesTotal()){
           trace(mc_cont_width)
           delete this.onEnterFrame
      }
}
Funciona a la perfeccion lo unico que cambie fue lo de rojo por esto:
Código:
mc_cont._width
Lo que hace un maldito punto...
Ya tengo una pregunta respondida, ahora faltan la 1 y la 2. Gracias!

ArgoN
  #6 (permalink)  
Antiguo 20/11/2005, 16:51
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
He conseguido el valor del ancho de la imagen .jpg (5) pero como tengo que usar ese valor? con MC._width no? Es que lo uso dentro de una sentencia for y es como si ese valor se perdiera y entonces da un bucle sin fin
Aqui va el codigo por si alguien ve algo mal:
Código:
MC.loadMovie("bg1.jpg");
this.onEnterFrame = function() {
	if (MC.getBytesTotal()>4 && MC.getBytesLoaded() == MC.getBytesTotal()) {
		trace(MC._width);
		delete this.onEnterFrame;
	}
};
for (x=0; x<140; x=x+MC._width) {
	z = 1;
	MC.duplicateMovieClip("MC"+(x/MC._width+1), x/MC._width+1);
	this["MC"+(x/MC._width+1)]._x = x;
	loadMovie("bg"+z+".jpg", "MC"+(x/MC._width+1));
}
Gracias chicos!

ArgoN
  #7 (permalink)  
Antiguo 21/11/2005, 11:09
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
No hay nada como hacerlo uno mismo
He estado probando y probando durante horas y he sacado la manera de hacer lo de la pregunta 1. Dentro de un rato posteo los 3 scripts q hay q poner para hacerlo, por si alguien le sirve de algo. La clave era en separar en 3 frames las 3 partes del script. Luego lo pongo q no toy en casa jeje

Nos vemos

ArgoN

P.D: Aun qeda la segunda pregunta por responder!!! Si consigo como hacer lo de la segunda pregunta ya podre crear un mosaico con cualqier imagen, sean las dimensiones q sean...
  #8 (permalink)  
Antiguo 21/11/2005, 17:37
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta a la pregunta 1)

PRIMER FRAME:

Código:
stop();
bgtxt = new LoadVars();
bgtxt.load("bg.txt");
bgtxt.onLoad = function(success) {
	if (success) {
		z = this.bgtxt;
		play();
	} else {
		z = 1;
		play();
	}
};
SEGUNDO FRAME:

Código:
stop();
this.onEnterFrame = function() {
	MC.loadMovie("bg"+z+".jpg");
	if (MC.getBytesTotal()>4 && MC.getBytesLoaded() == MC.getBytesTotal()) {
		trace(MC._width);
		MCwid = MC._width;
		delete this.onEnterFrame;
		play();
	} else {
		MCwid = 5;
	}
};
TERCER FRAME:

Código:
for (x=0; x<1280; x=x+MCwid) {
	MCbg.duplicateMovieClip("MC"+(x/MCwid+1), x/MCwid+1);
	this["MC"+(x/MCwid+1)]._x = x;
	loadMovie("bg"+z+".jpg", "MC"+(x/MCwid+1));
}
Espero que a alguien le sirva

Aun queda la pregunta numero 2

Espero vuestra respuesta!

ArgoN
  #9 (permalink)  
Antiguo 21/11/2005, 17:47
Avatar de marioStudios
Colaborador
 
Fecha de Ingreso: octubre-2005
Ubicación: Chiapas; México.
Mensajes: 1.626
Antigüedad: 18 años, 5 meses
Puntos: 212
R de la 2: Pues por que no lo haces a la antigüita. Coloca un hide a tu mc original y haces que aparesca otro igual en el lugar que tu requieras!!! Suerte.
  #10 (permalink)  
Antiguo 22/11/2005, 11:14
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Cita:
Iniciado por marioStudios
R de la 2: Pues por que no lo haces a la antigüita. Coloca un hide a tu mc original y haces que aparezca otro igual en el lugar que tu requieras!!! Suerte.
Con duplicateMovieClip? pero cuando lo hago? porque si lo hago antes de que el MC se haya terminado de cargar creo que duplica solo el MC vacio
Lo que pense es hacer esto:
Código:
MC.loadMovie("mi_MC.swf") //MC es un MC vacio en el escenario
if (MC.getBytesLoaded > 4 && MC.getBytesLoaded == getBytesTotal){
        MC.duplicateMovieClip("MC2",getNextHighestDepth());
        MC2._x = 140;
        MC2._y = 7;
}
Alguien podria decirme si esto es correcto. Quiero conseguir colocar un MC cargado externamente en el nivel mas alto y en unas coordenadas concretas. ¿¿Es eso valido??

Gracias!

ArgoN
  #11 (permalink)  
Antiguo 22/11/2005, 17:45
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 1 mes
Puntos: 0
con duplicateMovieClip no copia lo que este cargado en el MovieClip
si ese contenido fue cargado con por ej. loadMovie

lo que quieres es tener 2 MC con el mismo contenido?
y uno de ellos en el nivel mas alto posible? y en cierto lugar?

debes cargar otra vez el contenido no hay otra forma posible
mira este post

sino es eso lo que preguntas dilo nomas

sldos
__________________
...
.....todos somos muy ignorantes
...lo que ocurre es que
......no todos ignoramos las mismas cosas
:-D
...

:: jack experimentos ::
:: jack fotografias ::
:: jack fotografias 2 ::
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 05:25.