Comunidad de diseño web y desarrollo en internet online

La película SWF se detiene y no sigue funcionando.

Citar            
MensajeEscrito el 21 Feb 2013 04:25 pm
Buen día para todos.

Antes que nada quería agradecer a esta comunidad que me ha sido tan útil para aprender tantas cosas y sacarme de muchos apuros.

Me trae aquí un problema que se me ha presentado al crear un proyecto slider. En resumidas cuentas lo que hace este proyecto es deslizar horizontal/verticalmente movieclips (categorías: verticalmente y productos: horizontalmente). Lo he realizado mediante add/removeChilds y el uso de la clase Tween para que cada movieclip se desplace. Sólo use 2 fotogramas en el main del proyecto y cada movieclip tiene su respectiva animación dentro. Todo funciona mediante el uso de las teclas: derecha, arriba y shift.

Al exportar la película, bien sea en .swf o .exe, no da ningun error y tampoco durante la navegación en la aplicación presenta problemas en la salida o depurador.

EL PROBLEMA

Hasta aquí todo bien (yo muy, muy contento). Pero resulta que si se navega en la aplicación por un largo tiempo, la película llega a una especie de "fin" y no se puede seguir navegando, las teclas dejan de funcionar y se frena el desplazamiento de los movieclips (queda paralizado en el desplazamiento de algun producto). Lo extraño es que no salta ningún error y al mirar en el menú superior del reproductor aparece activa la opción Reproducir (Ctrl + Intro), como si se hubiese terminado el timeline, pero es imposible porque no hago uso de la linea de tiempo principal, sólo tengo 2 fotogramas.

MI DUDA

Aparte de que me puedan ayudar con alguna solución, quisiera preguntar si la causa de este problema pudiera ser el uso constante de la clase Tween o si no tiene nada que ver. Yo uso un Tween por cada producto (movieclip), que en total son 9.

La verdad, he buscado la solución por todos lados y no encuentro, desde hace 2 días, ninguna respuesta o problema similar a éste con las proyectos de flash.

Datos adicionales

Por si pudiera ser relevante quisiera mencionar un par de características de mi película:
- La película tiene un tamaño de 1920 x 1080.
- Pesa 5 MB.
- No va a ser para web sino para escritorio.
- Usa imágenes de alta resolución (9 imágenes).
- Por lo del tamaño llegué a pensar que era problema de memoria, pero observando el proceso de la película en el administrador de tareas, nunca sube su consumo desde que se inicia.
- Coloqué un contador de presión de teclas y la película se detiene siempre entre un rango de 170-191 clicks o usos de teclas

Agradezco de antemano la ayuda que me puedan brindar, ésto es muy importante para mi porque es para un trabajo.

Por Ekhymosis

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Feb 2013 12:18 pm
Pimero: publica para web y pruebalo en el navegador, asegúrate de tener el lash Player Debugger, y mira si aparece el error. Trata de determinar si es por tiempo o es por clicks. Si es por tiempo, mira si usas setInterval o si los onEnterFrame están acumulando variables (contadores que se suman constantemente), a veces es necesario reiniciarlos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Feb 2013 12:54 pm

solisarg escribió:

Pimero: publica para web y pruebalo en el navegador, asegúrate de tener el lash Player Debugger, y mira si aparece el error. Trata de determinar si es por tiempo o es por clicks. Si es por tiempo, mira si usas setInterval o si los onEnterFrame están acumulando variables (contadores que se suman constantemente), a veces es necesario reiniciarlos

Jorge

Hola Jorge, gracias por contestar.

Ya lo estoy subiendo a la web para hacer una prueba, tengo instalado el flash player debugger.

Con respecto a que si son los clicks o el tiempo, me inclino más por lo segundo porque cuando he hecho las pruebas el valor de la cantidad de clicks totales hasta que se frena la película es diferente - entre 170 o 190 o un poco más - pero la cuestión, según tu consejo, es que no hago uso de setInterval u onEnterFrame, todo lo hago con KeyboardEvent y Tween con su respectivo MOTION_FINISH. Y lo más extraño es que no me da ningun error (en salida o en el compilador), ni cuando pruebo la película (Ctrl + Enter) ni cuando la reproduzco con el archivo creado.

probaré tu sugerencia de reproducirlo en la web, gracias!

Por Ekhymosis

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Feb 2013 01:49 pm

solisarg escribió:

Pimero: publica para web y pruebalo en el navegador, asegúrate de tener el lash Player Debugger, y mira si aparece el error. Trata de determinar si es por tiempo o es por clicks. Si es por tiempo, mira si usas setInterval o si los onEnterFrame están acumulando variables (contadores que se suman constantemente), a veces es necesario reiniciarlos

Jorge

Acabo de probar tu sugerencia y como lo presentía, pasó lo mismo: se detubo, esta vez en 168 clicks.
No sé qué más puede ser, he revisado infinidad de veces el código y no hay nada que se incremente de manera indefinida, todos los listeners que uso constantemente son removidos al final de su uso y las únicas variables dinámicas que uso son 2 y como máximo sus valores llegan a 4 y se vuelven a reiniciar. ¿Qué más podría ser? :(

OFF-TOPIC(no sé si se pueda hacer esto)
No quiero desistir de continuar con la aplicación ya que me costó mucho (para mi bajo nivel de conocimiento) hacer este proyecto... pero como un plan B he intentando hacerlo de otra manera con interpolación de movimiento. Pero me encuentro con la primera dificutad que seguro resultará de fácil resolución para muchos de los foristas de este sitio.

ésto les va a parecer absurdo
Intento sumar un nombre base de movieclip y un numero que va incrementando para finarlmente colocar dicho resultado como un movieclip en el stage.

Ejemplo: tengo varios moviclips con este órden de nombres categoria1, categoria2, categoria3 etc.

Código ActionScript :

var sumando:int = 1;
var categoria:MovieClip;
categoria = categoria + sumando;
categoria.x = 0;
categoria.y = 0;
addChild(categoria);

Por Ekhymosis

3 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.