Diagrama de arquitectura - davidgonzalezjscosasunq/camini-toons GitHub Wiki

Reproducción de animación

Primer momento: la animación no se está reproduciendo

  1. 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
  2. La instancia de CaminiToons (facade) le avisa al objeto que representa la animación (AnimationDocument) que acaba de transcurrir un cuadro.
  3. 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

Diagrama de arquitectura 1

Segundo momento: el usuario inicia la reproducción de la animación

  1. 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
  2. CaminiToons le indica a la animación que debe comenzar a reproducirse
  3. La instancia de AnimationDocument se prepara para comenzar y se pone en modo reproducción cambiando su estado por un PlayingAnimationState

Diagrama de arquitectura 2

Tercer momento: comienza la reproducción

  1. El Clock notifica a la instancia de CaminiToons el paso del tiempo equivalente a un cuadro
  2. CaminiToons se lo comunica a la animación
  3. El AnimationDocument delega en su estado actual (PlayingAnimationState) la decisión de que hacer.
  4. El PlayingAnimationState le indica a la animación que debe prepararse para un nuevo cuadro de animación
  5. El AnimationDocument prepara el cuadro para que el objeto de la libreria PaperJS lo pueda dibujar
  6. El nuevo cuadro es dibujado en el canvas de HTML

Diagrama de arquitectura 3