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

precarga onLoadStart / onLoadProgress / onLoadComplete

Estas en el tema de precarga onLoadStart / onLoadProgress / onLoadComplete en el foro de Flash y Actionscript en Foros del Web. Hola,estoy modificando la web y la estoy realzando en flash. Me gustaría que al dar a un botón vaya a un frame determinado y se ...
  #1 (permalink)  
Antiguo 12/07/2010, 07:02
 
Fecha de Ingreso: junio-2010
Mensajes: 31
Antigüedad: 12 años, 6 meses
Puntos: 1
precarga onLoadStart / onLoadProgress / onLoadComplete

Hola,estoy modificando la web y la estoy realzando en flash.
Me gustaría que al dar a un botón vaya a un frame determinado y se inicie la precarga de un .swf externo, es esto posible.

He visto en algún foro la utilización de onLoadStart / onLoadProgress / onLoadComplete pero sinceramente no se si se puede aplicar y que código debo poner.

Esto lo quiero realizar porque ahora tengo una precarga en los archivos .swf externos pero al dar a un botón del flash principal no hace caso al los Stop, tal vez al realizar la precarga en el principal solucione el problema.

Llevo varios días con este problema y no se como solucionarlo, os agradecería que me echarais una mano. Utilizo actionscrip 2.


muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 12/07/2010, 15:38
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Aquí te dejo un ejemplo explicado y comentado para que empieces, no te asustes, hay más comentarios que líneas de código:


Código actionscript:
Ver original
  1. //En este ejemplo lo que se carga es una imagen, pero es igual para un SWF
  2. // aquí creamos un movieClip vacío que contenga la imagen
  3. this.createEmptyMovieClip ("image_mc", this.getNextHighestDepth ());
  4. //aquí creamos un objeto "escuchador" que está atento a los eventos para detectar el inicio y fin de la carga
  5. var mclListener:Object = new Object ();
  6. //aquí establecemos qué queremos ejecutar al iniciar la carga
  7. mclListener.onLoadStart = function (target_mc:MovieClip)
  8. {
  9.     trace ("Inicia la carga del archivo");
  10.     target_mc.startTimer = getTimer ();
  11. };
  12. // Se invoca cada vez que se graba en el disco duro el contenido durante el proceso de carga (es decir, entre MovieClipLoader.onLoadStart y MovieClipLoader.onLoadComplete).
  13. mclListener.onLoadProgress = function (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number)
  14. {
  15.     trace (target_mc + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
  16. };
  17. //aquí establecemos qué queremos ejecutar al finalizar la carga
  18. mclListener.onLoadComplete = function (target_mc:MovieClip)
  19. {
  20.     trace ("Termina la carga del archivo");
  21.     target_mc.completeTimer = getTimer ();
  22. };
  23. //El evento onLoadInit se invoca cuando se han ejecutado las acciones del primer fotograma del clip cargado
  24. mclListener.onLoadInit = function (target_mc:MovieClip)
  25. {
  26.     //recién aquí podrás setear las propiedades del clip cargado
  27.     trace ("El clip ahora sí está listo para ser usado");
  28.     var timerMS:Number = target_mc.completeTimer - target_mc.startTimer;
  29.     target_mc.createTextField ("timer_txt", target_mc.getNextHighestDepth (), 0, target_mc._height, target_mc._width, 22);
  30.     target_mc.timer_txt.text = "loaded in " + timerMS + " ms.";
  31. };
  32. //creamos un objeto del tipo MovieClipLoader, como el nombre lo indica lo usamo para cargar los MovieClips
  33. var image_mcl:MovieClipLoader = new MovieClipLoader ();
  34. //aquí le decimos a AS que el MovieClipLoader llamado "image_mcl" será "escuchado" por el objeto "mclListener"
  35. image_mcl.addListener (mclListener);
  36. //finalmente cargamos nuestro clip en el movieClip vació que creamos al inicio que se llamaba "image_mc"
  37. image_mcl.loadClip ("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

Espero que te sirva, saludos
__________________
EVO I.T.
Elearning y Desarrollo Web en Argentina.
  #3 (permalink)  
Antiguo 13/07/2010, 00:34
 
Fecha de Ingreso: junio-2010
Mensajes: 31
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Muchas gracias evo_it.

No lo he podido probar ya que me da un error:

en: trace ("Inicia la carga del archivo");
me pone el error "el operador "=" debe ir seguido de un operando"

y en: target_mc.starTimer = getTimer ();
me pone "Error de sintaxis".

He visto que este código se repite, cual puede ser el error?


No se si sera un error mio o del código yo utilizo actionScript 2.0.

Según tu código he hecho lo siguiente, he creado un mc vacio que es donde colocará el .swf externo y he creado un movieclip que sería la precarga, les he llamado image_mc y target_mc.

He sustituido la ruta "http://www.helpexamples.com/flash/images/image1.jpg" por "Galerias/Espacios/Vizcaya.swf". No he realizado ningún cambio más, copio el código por si puedes echarle un vistazo, que seguro que hago algo mal, el .swf que quiero que se realice la precarga es Vizcaya.swf.


//En este ejemplo lo que se carga es una imagen, pero es igual para un SWF
// aquí creamos un movieClip vacío que contenga la imagen
this.createEmptyMovieClip ("image_mc", this.getNextHighestDepth ());
//aquí creamos un objeto "escuchador" que está atento a los eventos para detectar el inicio y fin de la carga
var mclListener:Object = new Object ();
//aquí establecemos qué queremos ejecutar al iniciar la carga
mclListener.onLoadStart = function (target_mc:MovieClip)
{
* * trace ("Inicia la carga del archivo");
* * target_mc.startTimer = getTimer ();
};
// Se invoca cada vez que se graba en el disco duro el contenido durante el proceso de carga (es decir, entre MovieClipLoader.onLoadStart y MovieClipLoader.onLoadComplete).
mclListener.onLoadProgress = function (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
* * trace (target_mc + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
};
//aquí establecemos qué queremos ejecutar al finalizar la carga
mclListener.onLoadComplete = function (target_mc:MovieClip)
{
* * trace ("Termina la carga del archivo");
* * target_mc.completeTimer = getTimer ();
};
//El evento onLoadInit se invoca cuando se han ejecutado las acciones del primer fotograma del clip cargado
mclListener.onLoadInit = function (target_mc:MovieClip)
{
* * //recién aquí podrás setear las propiedades del clip cargado
* * trace ("El clip ahora sí está listo para ser usado");
* * var timerMS:Number = target_mc.completeTimer - target_mc.startTimer;
* * target_mc.createTextField ("timer_txt", target_mc.getNextHighestDepth (), 0, target_mc._height, target_mc._width, 22);
* * target_mc.timer_txt.text = "loaded in " + timerMS + " ms.";
};
//creamos un objeto del tipo MovieClipLoader, como el nombre lo indica lo usamo para cargar los MovieClips
var image_mcl:MovieClipLoader = new MovieClipLoader ();
//aquí le decimos a AS que el MovieClipLoader llamado "image_mcl" será "escuchado" por el objeto "mclListener"
image_mcl.addListener (mclListener);
//finalmente cargamos nuestro clip en el movieClip vació que creamos al inicio que se llamaba "image_mc"
image_mcl.loadClip ("Galerias/Espacios/Vizcaya.swf", image_mc);



Muchas gracias de nuevo.
  #4 (permalink)  
Antiguo 13/07/2010, 07:28
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

He probado tu código y está todo bien, sólo debes borrar los asteriscos que agregaste * * , no son parte de ningún código de flash. Si quieres comentar algo debes hacerlo con:

// línea

o con

/* línea */



Saludos
__________________
EVO I.T.
Elearning y Desarrollo Web en Argentina.
  #5 (permalink)  
Antiguo 13/07/2010, 09:13
 
Fecha de Ingreso: junio-2010
Mensajes: 31
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Los asteriscos se han generado al copiar y pegar, vamos que no están en el código de mi flash.

Me siguen saliendo ambos errores:

en: trace ("Inicia la carga del archivo");
me pone el error "el operador "=" debe ir seguido de un operando"

y en: target_mc.starTimer = getTimer ();
me pone "Error de sintaxis".

Lo único que he he cambiado respecto a tu código es la ruta "http://www.helpexamples.com/flash/images/image1.jpg" por "Galerias/Espacios/Vizcaya.swf". No he realizado ningún cambio más, el .swf que quiero que se realice la precarga es Vizcaya.swf, solo se nombra al final?

Ta vez es mucho pedir pero podrías poner un ejemplo en flash.

Muchas gracias de nuevo.
  #6 (permalink)  
Antiguo 13/07/2010, 15:39
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

No puede ser, yo lo copio y lo pego y funciona bien. ¿Qué Flash estás usando? ¿Estás seguro que estás usando AS2?, es decir ¿tienes el FLASH configurado para que exporte en AS2?

Saludos
__________________
EVO I.T.
Elearning y Desarrollo Web en Argentina.
  #7 (permalink)  
Antiguo 13/07/2010, 15:51
 
Fecha de Ingreso: junio-2010
Mensajes: 31
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Utilizo el CS4, y no se a que te refieres con que este configurado para que exporte en AS2.

Me podrías pasar un ejemplo?

Gracias de nuevo y un saludo.
  #8 (permalink)  
Antiguo 13/07/2010, 22:42
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

A mí me salió!
  #9 (permalink)  
Antiguo 14/07/2010, 07:17
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Por un lado tienes la versión de Flash que puede ser: Flash 8, Flash CS3, Flash CS4, etc. Y por otro lado tienes la versión de ActionScript: AS1, AS2 y AS3. El código de AS2 no es igual al de AS3 y por ende si tu le dices a Flash que usarás AS3 y luego escribes el código en AS2, entonces Flash al compilar ese código encontrará errores.

Ahora, ¿cómo le decimos a Flash qué ActionScript usar?

Para eso en el archivo Flash en donde estamos desarrollando nuestra apliacación, vamos a Archivo -> Configuración de publicación -> luego vamos a la solapa que dice Flash y en la lista que dice Versión del ActionScript, seleccionas AS2 (o el que tú desees). Luego de eso debes asegurarte que todo el código que escribas sea de AS2. El hecho de usar una configuración de AS2 en Flash CS4 puede ocasionar que el programa no te permita utilizar algunas herramientas o componentes de Flash CS4, debido a que están programados para AS3.

Lo ideal sería que uses AS3 pero es mucho más complejo para alguien que está dando sus primeros pasos.

Saludos
__________________
EVO I.T.
Elearning y Desarrollo Web en Argentina.
  #10 (permalink)  
Antiguo 14/07/2010, 09:01
 
Fecha de Ingreso: junio-2010
Mensajes: 31
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: precarga onLoadStart / onLoadProgress / onLoadComplete

Gracias por vuestras respuestas, uso el ActionScript 2 volveré a colocar el código a ver si lo consigo.

Un saludo.

Etiquetas: precarga
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:24.