Problema precarga y attachMovie
Tengo dos escenas: En la primera («Cargando») tengo la precarga y en la segunda («Scene 1») una galería de fotos:
---
En «Cargando» tengo 4 frames:
1.
Vacío
2.
<code>indicador._xscale = 0;</code>
3.
<code>percent = Math.floor (getBytesLoaded() / getBytesTotal() * 100);
if (percent < 100) {
indicador._xscale = percent * 100 / 100;
}
else {
gotoAndStop("Scene 1", 1);
} </code>
4.
<code>gotoAndPlay(_currentframe-1);</code>
En el stage hay un text dinamic con la variable <em>percent</em> y un movie clip con la instancia <em>indicador</em>
En «Scene 1» tengo 1 frame:
1.
<code>stop();
contenedorfotos.attachMovie("visiones01", "visiones_mc", 1);</code>
----
Siempre me ha funcionado este tipo de precarga pero no puedo lograr que funcione para este caso y sospecho que es porque el primer frame carga código attachMovie de la librería.
Lo que sucede es que hace la precarga pero no muestra lo que hay en la escena de precarga.
Muchas gracias al que me pueda dar una mano.
markshock
jajaja así estamos todos, no te preocupes.. como esto n lo voy a implantar ya mismo.. no me urge excesivamente...
Mil gracias!
elsuricatorojo
Por supuesto... pero soy un poco como el Guadiana, apareczo y desaparezco en función de si un proyecto me come a mi o yo a el. :-)
markshock
correcto.. yo también le veo muy buen uso a onEnterFrame para este caso.
Si tengo cualquier duda te puedo consultar "elSuricatoRojo" ?
elsuricatorojo
Yo creo que onEnterFrame es la forma ideal ya que en este caso la obtención de datos está directamente relacionada con su presentación, y ésta con que se actualice una vez cada frame es mas que suficiente.
La alternativa seria con un interval, pero es posible que si fijas el intervalo cada pocos milisegundos, obtengas muchos mas datos de los que puedes mostrar (a parte de saturar inecesariamente la máquina), y posiblemente tengas que variar el tiempo del interval en funcion de los fps de tu película.
markshock
elSuricatoRojo, muy buena esa idea.. no se me habia ocurrido...
miraré de ponerla en practica.. por que mas o menos me pasa eso ahora con una movie.. me empieza siempre a mostrar la precarga cuando va x el 40%...
Como evaluas el tema? lo haces con un onEnterFrame, has dicho no?... mmm...
elsuricatorojo
Si te sirve de consuelo el problema de tener muchos elementos con vinculaciones y por tanto la precarga "real" arranque desde, por ejemplo 55%, es algo a lo que, para la pelicula padre, no he encontrado solución.
Yo lo que hago es hacer las precargas "falsas", es decir, le digo que en cada reevaluación del porcentaje cargado, que suele ser cada frame porque se basa en onEnterFrame, que solo puede avanzar como máximo un tanto por ciento (el mínimo no tiene límite).
Es decir, que supongamos que por el problema de los attachs la pregarga "real" arranca en 55%, pero yo a mi precarga "falsa" le he dicho que el incremento máximo es 10%... en la primera reevaluación mostrará 10%, en la segunda 20%.. en la quinta 50% y en la sexta, si la precarga real va por 57% mostraré 57%, si va por 80%, mostraré 60%.
Le suelo meter un condicional para detectar si está cache y saltarme la precarga visual (no siempre).
Que consigo con esto.?.. lo pricipal, asegurarme que una "precarga visual prograsiva" tenga pinta de "precarga visual progresiva". A veces la carga es tan rápida que solo sale como un parpadeo por que en la primera reevaluación (1er frame) pintaba 40% y en la segunda 100% (2do frame) y luego desaparece (3er frame) y en mi oponión genera confusión.
Y de paso me quito el probelma de que la precarga pueda arrancar en 55%.
elSu[XXXXXX]toRojo <--- con la tipica banda negra en los hojos para que no se me reconozca.
leos
¡Maldito! me ganó y me dí por vencido porque ya tenía que entregar el trabajo, preferí cambiar los AS attachMovie por un simple contenedor por cada foto para que deje funcionar la precarga. Esto hace que todos los botones que levantan las fotos tengan mucho más código.
El problema de esta precarga pasa por linkear de la librería los MC, la precarga toma el total del peso del swf, hace una precarga pero no resuelve las variables de porcentaje y no las muestra.
En fin la solución debe ser estúpida, pero me superó esta vez pero adapté mi capacidad limitada a lo que necesitaba :-x
Gracias a los que me ayudaron.
athomix
Realmente llega a cargar la escena?
Igual digo una parida pero has mirado de quitar el Math.floor?
Otra cosa, llamar a una escena por el frame 1 es = llamar la escena o nombre de etiqueta. gotoAndStop("escena", 1) = gotoAndStop("escena").
elsuricatorojo
:-) me refiero en a que el contenedor se puede que esté instanciado con otro nombre y que el swf no tiene porque llamarse "original.swf"
leos
Voy a probar esto a ver si lo logro que cosa!
Cuando dices:
Haces un loadMovie en plan:
contenedor_mc.loadMovie("original.swf")
¿A qué te refieres con «en plan»?
Gracias nuevamente por tu ayuda.
elsuricatorojo
De lo que se trata es que si peli original se llama por ejem plo original.swf, te creas otra que se llame por ejemplo padre.swf, el cual tendrá solo la programación que muestra la precraga.
Imagínate que en el _root de padre.swf tienes un contenedor (que es un movieclip vacio en el 0,0) que has instanciado como "contenedor_mc".
Haces un loadMovie en plan:
contenedor_mc.loadMovie("original.swf")
...y para el porcentaje de carga haces los cálculos sobre:
contenedor_mc.getBytesLoaded()
...y:
contenedor_mc.getBytesTotal()
y poco mas.
leos
Sí esa era otra, pero no lo logro hacer que me funcione.
¿Cónoces un post o un enlace de como hacer eso bien?
Usé el _parent. pero tenía entendido que era mejor usar _parente. en lugar de _root para evitar esos problemas.
elsuricatorojo
Otra solución mas coñazo es tener una pelicula padre que cargue la que tienes ahora, pero si no tienes las cosas bien encapsuladitas y has utilizado _root, _levels o _parent._parent... no te la recomiendo.
leos
mmm tampoco ahora ni me levanta ese primer movie.
Lo de las escenas es cierto, también he probado ponerlo todo en una escena pero hace el mismo problema. Gracias por tu ayuda.
elsuricatorojo
Prueba adesactivar la casilla "Exportar en el primer frame", en la ventana de "Propiedades de Vinculación".
Un consejo... yo no utilizaría escenas si la pelicula no es pura animación.