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

Ayuda actualizar ventana hace la diferencia

Estas en el tema de Ayuda actualizar ventana hace la diferencia en el foro de Flash y Actionscript en Foros del Web. Gracias por darte tiempo para leer esto, a ver si me doy a entender: Tengo una pelicula principal, en el frame 20 pongo un MovieClip ...
  #1 (permalink)  
Antiguo 27/07/2003, 04:43
Avatar de impio_joe  
Fecha de Ingreso: mayo-2001
Ubicación: México
Mensajes: 69
Antigüedad: 22 años, 11 meses
Puntos: 0
Pregunta Ayuda actualizar ventana hace la diferencia

Gracias por darte tiempo para leer esto, a ver si me doy a entender:

Tengo una pelicula principal, en el frame 20 pongo un MovieClip vacio y lo llamo holdermusic y en ese mismo frame 20
en el layer acciones llamo un reproductor stream de mp3 externo que se llama music.swf, lo llamo asi:

Código:
loadMovie ("music.swf", "holdermusic");
El reproductor (music.swf) se carga pero NO se ven los nombres de las canciones, estos nombres los obtiene
de un .txt externo, esto se arregla si actualizo la ventana del navegador, se carga todo de nuevo y esta vez SI
funciona el reproductor perfectamente , pero deja de funcionar si borro el caché y cargo otra vez la página.

Creo que el problema es el código del .swf externo (music.swf) su código es este:


Código:
this.onEnterFrame = function () {
sload = _parent.mySound.getBytesLoaded();
stotal = _parent.mySound.getBytesTotal();
percentload = (Math.round((sload/stotal) * 100)) + "%";
if (counter < 2) {
counter = counter + 1;
loadVariables("flashmusic.txt", this);
songtitle = musictitle.split(":");
count2 = 0;
songplaying = (count2+1) + " - " + songtitle[count2];
}
if (stopped!=true) {
mySoundDuration=Math.round(_parent.mySound.duration/1000);
mySoundPosition=Math.round(_parent.mySound.position/1000);
texttime = mySoundPosition;
timemin = 0;
if (texttime < 10) {
	texttime = "0" + texttime;
}
while(texttime >= 60) {
	texttime = texttime - 60;
	timemin = timemin + 1;
if (texttime < 10) {
	texttime = "0" + texttime;
}
}
}
timeformat = timemin + ":" + texttime;
}
Me late que el problema es en el :

Código:
if (counter < 2) {
porque si se le quito ese IF , si me carga la lista de reproducción desde la primera vez (aunque no esté en cache)
pero ahora NO puedo avanzar de cancion si le aprieto el botón para avanzar cancion aparece como flashazo el nombre
de la segunda canción pero de inmediato se regresa a la primera.

No puedo arreglarlo, espero que alguien me pueda ayudar.
Se los suplico
Gracias
__________________
Atte: Impío_joe
  #2 (permalink)  
Antiguo 28/07/2003, 12:42
Avatar de juwe  
Fecha de Ingreso: abril-2001
Ubicación: Guadalupe Inn
Mensajes: 622
Antigüedad: 23 años
Puntos: 0
Ya probaste hacer el LoadVariables así:
Código:
loadVariables("flashmusic.txt", "/holdermusic");
en lugar de:
Código:
loadVariables("flashmusic.txt", this);
Puede ser eso, a lo mejor es un poco redundante en el código poner la ruta, pero igual y funca.
Saludos desde México.
__________________
blog.juwestudio
  #3 (permalink)  
Antiguo 28/07/2003, 13:23
Avatar de impio_joe  
Fecha de Ingreso: mayo-2001
Ubicación: México
Mensajes: 69
Antigüedad: 22 años, 11 meses
Puntos: 0
Muchas gracias por la ayuda juwe, pero lamentablemente no
solucionó el problema lo que pasa es que termina de cargar todo y si carga el player pero sin la lista de canciones, luego
si Actualizo la página ya aparece la lista y todo funciona bien pero
solo cuando ya está el archivo en caché. Yo creo que todo es por el
Código:
this.onEnterFrame
que según tengo entendido es una especie de loop y en este caso sirve para ir mostrando el porcentaje cargado del archivo que se está escuchando en stream, luego como el código que
carga la lista, osea este:
Código:
loadVariables("flashmusic.txt", "/holdermusic");
songtitle = musictitle.split(":");
count2 = 0;
songplaying = (count2+1) + " - " + songtitle[count2];
está tambien dentro del
Código:
this.onEnterFrame
utiliza esta variable que se llama counter para hacer que la lista
se cargue solo la primera vez que se ejecuta el "loop" y no se
esté repitiendo la instrucción todo el tiempo,
Código:
if (counter < 2) {
counter = counter + 1;
loadVariables("flashmusic.txt", "/holdermusic");
songtitle = musictitle.split(":");
count2 = 0;
songplaying = (count2+1) + " - " + songtitle[count2];
}
el problema es que la primera vez que se despliega no funciona y
por lo mismo no muestra las canciones, sólo hasta que le doy actualizar.
Y si le quito el IF y la dejo así:
Código:
loadVariables("flashmusic.txt", "/holdermusic");
songtitle = musictitle.split(":");
count2 = 0;
songplaying = (count2+1) + " - " + songtitle[count2];
SI carga la lista desde la primera vez que se muestra la página aunque no esté en cache pero el problema es que luego ya no puedo ver las demas canciones cuando presiono el botón para
avanzar de canción muestra la canción 2 per sólo se ve como flashazo, menos de un segundo y de inmediato se regresa y muestra de nuevo la canción 1.

Y si le pongo counter<1 así:
Código:
if (counter < 1) {
counter = counter + 1;
loadVariables("flashmusic.txt", "/holdermusic");
songtitle = musictitle.split(":");
count2 = 0;
songplaying = (count2+1) + " - " + songtitle[count2];
}
No muestra la lista ni la primera vez ni cuando actualizo la ventana.
Espero que te haya explicado bien el problema, agradezco tu ayuda e ideas.
__________________
Atte: Impío_joe
  #4 (permalink)  
Antiguo 28/07/2003, 17:17
Avatar de juwe  
Fecha de Ingreso: abril-2001
Ubicación: Guadalupe Inn
Mensajes: 622
Antigüedad: 23 años
Puntos: 0
Emmmm creo que puede ser porque no ha terminado de cargar las variables, con LoadVars puedes esperarte a que esten cargadas las variables y luego ya te cargo todo, te lo muestra.
pues con loadVariables, lo que hace es ejecutar la carga, pero no chequea que ya estén dentro, y se me hace que no le da tiempo de cargarlas del txt, y por eso hasta que refrescas ya te lo muestra.

Saludos desde México.
__________________
blog.juwestudio
  #5 (permalink)  
Antiguo 28/07/2003, 21:00
Avatar de impio_joe  
Fecha de Ingreso: mayo-2001
Ubicación: México
Mensajes: 69
Antigüedad: 22 años, 11 meses
Puntos: 0
Gracias juwe, ya sospechaba de eso e intenté de todo hasta
cargar la variable del .txt como variable global desde que cargaba
la Movie principal, lo intenté también con LoadVars y como no me
funcionó lo descarté, pero leí el manual y busque ejemplos de
LoadVars hasta que finalmente lo logré hacer, bien quedó así:

En el frame 1:

Código:
stop();
miObjeto = new LoadVars(); 
miObjeto.load("flashmusic.txt")
miObjeto.onLoad = function(success) {
if (success){
gotoAndPlay(2);
}
}
En el frame 2:

Código:
stop();
this.onEnterFrame = function () {
sload = _parent.mySound.getBytesLoaded();
stotal = _parent.mySound.getBytesTotal();
percentload = (Math.round((sload/stotal) * 100)) + "%";
if (counter < 2) {
counter = counter + 1;
songtitle = miObjeto.musictitle.split(":");
count2 = 0;
songplaying = (count2+1) + " - " + songtitle[count2];
}
if (stopped!=true) {
mySoundDuration=Math.round(_parent.mySound.duration/1000);
mySoundPosition=Math.round(_parent.mySound.position/1000);
texttime = mySoundPosition;
timemin = 0;
if (texttime < 10) {
	texttime = "0" + texttime;
}
while(texttime >= 60) {
	texttime = texttime - 60;
	timemin = timemin + 1;
if (texttime < 10) {
	texttime = "0" + texttime;
}
}
}
timeformat = timemin + ":" + texttime;
}
Gracias por el tip, efectivamente era eso sólo que como voy empezando con esto, pues, no lo había hecho bien .

Gracias a todos los que se dieron tiempo para leer esto.

Bye!
__________________
Atte: Impío_joe
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 20:53.