Diagrama de arquitectura - davidgonzalezjscosasunq/camini-toons GitHub Wiki
Reproducción de animación
Primer momento: la animación no se está reproduciendo
En el modelo existe un objeto (Clock) encargado de enviar notificaciones a quien tenga registrado como observer (CaminiToons) avisandole que transcurrió el tiempo equivalente a un cuadro de animación
La instancia de CaminiToons (facade) le avisa al objeto que representa la animación (AnimationDocument) que acaba de transcurrir un cuadro.
La animación delega en su estado actual (IdleAnimationState) la responsabilidad de decirle qué hacer. Como en este punto no se encuentra en modo reproducción, no se produce ningun efecto
Segundo momento: el usuario inicia la reproducción de la animación
El usuario presiona un botón para iniciar la reproducción, lo que dispara un envio de mensaje a la instancia de CaminiToons con tal fin
CaminiToons le indica a la animación que debe comenzar a reproducirse
La instancia de AnimationDocument se prepara para comenzar y se pone en modo reproducción cambiando su estado por un PlayingAnimationState
Tercer momento: comienza la reproducción
El Clock notifica a la instancia de CaminiToons el paso del tiempo equivalente a un cuadro
CaminiToons se lo comunica a la animación
El AnimationDocument delega en su estado actual (PlayingAnimationState) la decisión de que hacer.
El PlayingAnimationState le indica a la animación que debe prepararse para un nuevo cuadro de animación
El AnimationDocument prepara el cuadro para que el objeto de la libreria PaperJS lo pueda dibujar