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

¿En qué estoy mal? (loadMovie)

Estas en el tema de ¿En qué estoy mal? (loadMovie) en el foro de Flash y Actionscript en Foros del Web. Saludos... Quiero hacer una función que cargue un película externa (algo como un loadMovie dinámico) . El asunto es que tengo esto: Código: stop(); function ...
  #1 (permalink)  
Antiguo 31/01/2005, 13:28
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
¿En qué estoy mal? (loadMovie)

Saludos...

Quiero hacer una función que cargue un película externa (algo como un loadMovie dinámico) . El asunto es que tengo esto:

Código:
stop();
function carga(mc,destino) {
	_root.createEmptyMovieClip("mcCargador",100);
	mc.loadMovie(destino);
	_root.mcCargador.onEnterFrame = function() {
		with(mc) {
			cargado = Math.round(getBytesLoaded()/1024);
			total = Math.round(getBytesTotal()/1024);
			porcentaje = Math.round((cargado*100)/total);
			if(cargado>=total){
				_root.txt="Done";
				delete _root.mcCargador.onEnterFrame;
			} else {
				_root.txt="Loading mc...";
			}
		}
	};
}
Y desde un botón por ejemplo pongo:

Código:
on (press) {
   _root.carga(_root.mcContenedor, "foto.jpg");
}
Al parecer resulta, pero como a medias, ello porque solo me aparece el Done cuando carga, lo que se refiere al cargando ("Loading mc...") no lo toma, como que no pesca esas sentencias. Espero que ahora me ayuden ustedes
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #2 (permalink)  
Antiguo 31/01/2005, 15:03
Avatar de S I D I U S  
Fecha de Ingreso: noviembre-2002
Ubicación: D.F.
Mensajes: 290
Antigüedad: 22 años
Puntos: 0
te adapte un prototypo a lo que tu necesitas!
en el root:

Código:
MovieClip.prototype.loadjpg = function(clip, eljpg) {
	var mcCarga = this.createEmptyMovieClip("mcCarga", 1);
	mcCarga.loadMovie(eljpg);
	this.onEnterFrame = function() {
		mcCarga._visible = false;
		var tLoaded, tBytes;
		tLoaded = mcCarga.getBytesLoaded();
		tBytes = mcCarga.getBytesTotal();
		var porcentaje = int(tLoaded*100/tBytes);
		info_txt.text = porcentaje+" % of "+eljpg+" loaded";
		// Make sure stream has started
		if (isNaN(tBytes) || tBytes<4) {
			return;
		}
		// jump out and play if fully loaded
		if (tLoaded/tBytes>=1) {
			// now load it the placeholder and show it
			clip.loadMovie(eljpg);
			info_txt.text = "loaded";
			delete this.onEnterFrame;
		}
	};
};
en los botones:

Código:
on (release) {
	loadjpg(_root.contenedor, "002.jpg");
}

ejemplo precarga jpg


Suerte!
__________________
http://www.execomnet.com
  #3 (permalink)  
Antiguo 31/01/2005, 17:04
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
Saludos...

Interesante.. vamos a ver que tal y les cuento
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #4 (permalink)  
Antiguo 31/01/2005, 18:44
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
Saludos...

Funciona, pero le intenté poner un "fader in" (que vaya apareciendo la imagen) pero nada de nada... ¡¡¡QUE PERDIDO ANDO!!!

Código:
MovieClip.prototype.cargaMovies = function(clip, destino) {
	var mcCarga = this.createEmptyMovieClip("mcCarga", ++nivel);
	mcCarga.loadMovie(destino);
	this.onEnterFrame = function() {
		mcCarga._visible = false;
		var bCargados, bTotal;
		bCargados = mcCarga.getBytesLoaded();
		bTotal = mcCarga.getBytesTotal();
		var porcentaje = Math.round((bCargados*100)/bTotal);
		info_txt.text = porcentaje+"%";
		// Asegurarse que el stream ha comenzado
		if (isNaN(bTotal) || bTotal<4) {
			return;
		}
		// si está 100% cargado, utiliza la forma a/a=1 para comprobar
		if (bCargados/bTotal>=1) {
			var mcEscucha = this.createEmptyMovieClip("mcEscucha", ++nivel);
			// carga y muestra
			clip.loadMovie(destino);
			clip.onLoad = function(){
				i=0;
				mcEscucha.onEnterFrame = function() {
					if(i<100) {
						clip._alpha=i;
						i++;
					}
					else {
						delete mcEscucha.onEnterFrame;
					}
				};
			};
			info_txt.text = "CARGADO";
			delete this.onEnterFrame;
		}
	};
};
El preload funciona perfectamente, lo que no funciona es el "fade in"
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #5 (permalink)  
Antiguo 31/01/2005, 21:48
Avatar de S I D I U S  
Fecha de Ingreso: noviembre-2002
Ubicación: D.F.
Mensajes: 290
Antigüedad: 22 años
Puntos: 0
crea tu "fader in" como prototypo y en:
Código:
if (tLoaded/tBytes>=1) {
			// now load it the placeholder and show it
			clip.loadMovie(eljpg);
			info_txt.text = "loaded";
                        //prototype fade in
                        clip.fadeIn();
			delete this.onEnterFrame;
		}
__________________
http://www.execomnet.com
  #6 (permalink)  
Antiguo 31/01/2005, 23:12
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
Saludos...

Exactamente eso había probado también pero nada de nada, hago el fade in de esta forma:

Código:
MovieClip.prototype.desvanece = function() {
	i=0;
	this.onEnterFrame = function() {
		if(i<100) {
			this._alpha=i;
			i++;
		}
		else {
			delete this.onEnterFrame;
		}
	};
};
Pero nada de nada, o sea, resulta cuando lo llamo desde un botón, pero si lo llamo desde el otro prototype no funciona... DEBO ESTAR FALLANDO EN ALGO CON LAS RUTAS, Uffff QUE DURO HA SALIDO ESTO!
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...

Última edición por goc00; 31/01/2005 a las 23:15
  #7 (permalink)  
Antiguo 01/02/2005, 14:30
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
Saludos...

S_I_D_I_U_S estás por ahí??!!, parece que eres el único que entiende mi idea y posible solución !
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #8 (permalink)  
Antiguo 01/02/2005, 20:49
Avatar de S I D I U S  
Fecha de Ingreso: noviembre-2002
Ubicación: D.F.
Mensajes: 290
Antigüedad: 22 años
Puntos: 0
Cita:
Iniciado por goc00
Saludos...

S_I_D_I_U_S estás por ahí??!!, parece que eres el único que entiende mi idea y posible solución !
jajaja......


voy a ver que puedo hacer por ti!


mmm......
Código:
MovieClip.prototype.loadjpg = function(clip, eljpg) {
	var mcCarga = this.createEmptyMovieClip("mcCarga", 1);
	mcCarga.loadMovie(eljpg);
	this.onEnterFrame = function() {
		mcCarga._visible = false;
		var tLoaded, tBytes;
		tLoaded = mcCarga.getBytesLoaded();
		tBytes = mcCarga.getBytesTotal();
		var porcentaje = int(tLoaded*100/tBytes);
		info_txt.text = porcentaje+" % of "+eljpg+" loaded";
		// Make sure stream has started
		if (isNaN(tBytes) || tBytes<4) {
			return;
		}
		
		if (tLoaded/tBytes>=1) {
			clip.loadMovie(eljpg);
			clip._alpha = 0;
			var i = 0;
			if (clip.getBytesLoaded()>=clip.getBytesTotal()) {
				_root.onEnterFrame = function() {
					if (i<100) {
						clip._alpha = i;
						trace(i);
						i++;
					}
				};
			}
			delete this.onEnterFrame;
		}
	};

};
no esta depurado, pero funcina!:


solo tienes que publicar tu movie con 50fps para que se vea decente!
__________________
http://www.execomnet.com

Última edición por S I D I U S; 01/02/2005 a las 21:04
  #9 (permalink)  
Antiguo 01/02/2005, 22:56
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
Saludos...

AL FIN LO HE LOGRADO !!! PERDONNN... LO HEMOS LOGRADO JUNTO A S_I_D_I_U_S ujwujAujUJWujAjuWujaA... dps de esa ayuda me prendiste la ampolleta y lo dejé como un prototype para cualquier movieclip (eso si que es optimizar trabajo ). Dejo el código a disposición de todos, no se mal acostumbren eso si !!! XD!!!

Código:
//**************************************
//Contribución de goc00 y S_I_D_I_U_S
//Crea un prototype para cargar cualquier .swf o .jpg
//y al momento de cargar el elemento cargado se muestra
//con un fader in, desde ya se esperan comentarios ;)
//***************************************
stop();
MovieClip.prototype.desvanece = function() {
	mcFader=this;
	_root.createEmptyMovieClip("mcFad",10);
	this._alpha = 0;
	var i=0;
	mcFad.onEnterFrame = function() {
		if (i<100) {
			mcFader._alpha = i;
			i++;
		}
		else if(i==100) { delete mcFad.onEnterFrame; }
	};
};
MovieClip.prototype.cargaMovies = function(clip, destino) {
	var mcCarga = this.createEmptyMovieClip("mcCarga", 1);
	mcCarga.loadMovie(destino);
	this.onEnterFrame = function() {
		mcCarga._visible = false;
		var bCargados, bTotal;
		bCargados = mcCarga.getBytesLoaded();
		bTotal = mcCarga.getBytesTotal();
		var porcentaje = Math.round((bCargados*100)/bTotal);
		_root.cargador.info.text = porcentaje+"%";
		_root.cargador.barra._xscale=porcentaje;
		// Asegurarse que el stream ha comenzado
		if (isNaN(bTotal) || bTotal<4) {
			return;
		}
		// si está 100% cargado, utiliza la forma a/a=1 para comprobar
		if (bCargados/bTotal>=1) {
			// carga y muestra
			clip.loadMovie(destino);
			clip.desvanece();
			_root.cargador.info.text = "Done";
			delete this.onEnterFrame;
		}
	};
};
Qué lindo ver tanto código no creen? jijijiJIJI

P.D.: S_I_D_I_U_S me llamó mucho la atención esa acción de que comprobaba si el stream había comenzado, ¿podrías explicarlo?... Ejemplo: En que nos beneficia, porqué ocupas esos valores para comparar y todo eso. WuooooOOOo.. ESTO YA SE TRANSFORMA EN TUTORIAL !!! xD!!!!!
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #10 (permalink)  
Antiguo 02/02/2005, 02:34
Avatar de S I D I U S  
Fecha de Ingreso: noviembre-2002
Ubicación: D.F.
Mensajes: 290
Antigüedad: 22 años
Puntos: 0
muy bueno, muy bueno!!!!!

Cita:
Iniciado por goc00
P.D.: S_I_D_I_U_S me llamó mucho la atención esa acción de que comprobaba si el stream había comenzado, ¿podrías explicarlo?... Ejemplo: En que nos beneficia, porqué ocupas esos valores para comparar y todo eso. WuooooOOOo.. ESTO YA SE TRANSFORMA EN TUTORIAL !!! xD!!!!!




Código:
if (isNaN(bTotal) || bTotal<4) {
			return;
		}
explico:
isNaN comprueba que bTotal en un numero OR bTotal < 4, osea
bTotal debe de ser un numero(true), entonces 4 bit es lo que pesa el mc vacio, es menor que bTotal(true) se cumple la sentencia if.

el script no es mio, no se con que fin lo pusieron, ya que si lo quitas no afecta. Por el contrario te puede ayudar para controlar algun evento, funcion, etc... que interactue con tu clip cuando comience el stream.

Saludos


P.D. son las 2:40 am a esta hora estoy asi mañana comento cada linea del prototype, para que se vea mas bonito jajaja........
__________________
http://www.execomnet.com
  #11 (permalink)  
Antiguo 02/02/2005, 03:46
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 10 meses
Puntos: 3
Saludos...

Vale maltos por mejorar un poco más el código, pero mejoraste el código 1 post anterior! ujwujAujUJWUJAujA, el que está corriendo es el último (el que tiene 2 prototypes) . Aunque igual se podría poner lo que pusiste, ¿o me equivoco?. jijiJIJIji

S_I_D_I_U_S ahora entendí el pq del 4, con que un mc vacío ocupa ese espacio en memoria... que interesante saber aquello . Lo del isNan ya lo sabía... ahora leyendo sobre el return, este al encontrarse solo retorna "null", tendremos que abstraernos más al parecer para comprender la funcionalidad de esa acción! (estoy intrigado) En todo caso como bien dices es como para mejorar el asunto, pq si no está no afecta en nada.
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
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 00:12.