Share via


Información general sobre la animación de Windows

Esta introducción proporciona una introducción al Administrador de animaciones de Windows y se centra en los componentes y conceptos clave. Para obtener más información sobre guiones gráficos y transiciones, consulte Información general sobre guion gráfico.

Este tema contiene las siguientes secciones:

Conceptos básicos

La animación es una secuencia de imágenes fijas sucesivas que producen una ilusión de movimiento cuando se reproducen. El uso de la animación interactiva en su interfaz de usuario puede proporcionar a una aplicación una personalidad única, así como mejorar la experiencia del usuario. La animación puede ayudar a comunicar cambios de estado importantes en la interfaz de usuario y ayudar a administrar la complejidad de la interfaz de usuario. La animación también puede agregar a la percepción del usuario de la calidad de una aplicación.

Como ejemplos, la animación de Windows se usa en la barra de tareas para ayudarte a administrar y acceder a archivos y programas, y lupa para ampliar diferentes partes de la pantalla para que sean más fáciles de ver para los usuarios.

Las unidades fundamentales de una animación son la característica de un elemento visual que se va a animar y la descripción de cómo cambia esa característica con el tiempo. Una aplicación puede animar una amplia variedad de características, como la posición, el color, el tamaño, la rotación, el contraste y la opacidad.

En Animación de Windows, una variable de animación representa la característica que se va a animar. Una transición describe cómo cambia el valor de esa variable de animación a medida que se produce la animación. Por ejemplo, un elemento visual podría tener una variable de animación que especifica su opacidad y una acción de usuario podría generar una transición que tome esa opacidad de un valor de 50 a 100, que representa una animación de semitransparente a opaco totalmente opaco.

Un guión gráfico es un conjunto de transiciones aplicadas a una o varias variables de animación a lo largo del tiempo. Una aplicación muestra animaciones construyendo y reproduciendo guiones gráficos y, a continuación, dibujando secuencias de fotogramas discretos a medida que los valores de las variables de animación cambian con el tiempo.

Componentes de la animación de Windows

La animación de Windows consta de los siguientes componentes:

administrador de animaciones

Las aplicaciones usan un objeto de administrador de animaciones para crear variables de animación y guiones gráficos, animaciones de programación y control, y actualizar información de estado antes de que la aplicación dibuje cada fotograma. Un único objeto de administrador de animaciones normalmente administra todas las animaciones en una aplicación y, por lo tanto, tiene control global sobre todos los guiones gráficos programados.

variables de animación

Antes de iniciar cualquier animación, una aplicación debe crear objetos de variables de animación. Una variable de animación representa un aspecto de un elemento visual que se va a animar. La variable es un valor de punto flotante escalar, aunque el valor se puede redondear a un valor entero.

Normalmente, una variable de animación tiene la misma duración que el elemento visual que se va a animar. El valor inicial de una variable de animación se especifica cuando se crea la variable. A partir de entonces, su valor no se puede cambiar directamente; debe actualizarse a través del administrador de animaciones.

Una variable de animación se puede identificar mediante una etiqueta , que es un emparejamiento de un identificador entero con un puntero a un objeto COM. Una etiqueta no debe ser única, a menos que la aplicación la use para buscar una variable. De forma predeterminada, una variable de animación no tiene una etiqueta y los intentos de leer su etiqueta producirán un error hasta que se haya establecido uno.

sistema de control de tiempo

La animación de Windows incluye un sistema de control de tiempo que ayuda a garantizar que las animaciones se representan a una velocidad de fotogramas fluida y coherente, a la vez que reduce el uso de recursos del sistema para la representación cuando el sistema está ocupado. Un temporizador ayuda a administrar la representación de animación indicando automáticamente el paso de una pequeña unidad de tiempo, denominada tic. El sistema de control de tiempo supervisa el rendimiento general de la representación del sistema y limita las animaciones aumentando o disminuyendo dinámicamente la frecuencia de tics. Las aplicaciones pueden permitir que un temporizador impulse el administrador de animaciones y puede registrar un controlador para recibir notificaciones antes y después de actualizar el administrador para cada tic. Las aplicaciones pueden especificar la velocidad de fotogramas de animación mínima aceptable para un temporizador y recibir notificaciones si la velocidad de fotogramas real de una animación cae por debajo de esta velocidad.

Para conservar los recursos del sistema, se puede configurar un temporizador para deshabilitarse cuando no tiene lugar ninguna animación.

La API de animación de Windows

La API de animación de Windows es una API basada en COM de un solo subproceso que proporciona las siguientes características para los desarrolladores:

  • Un objeto de administrador de animaciones, UIAnimationManager, para crear objetos de animación y controlar animaciones
  • Variables de animación y guiones gráficos
  • Una biblioteca fundamental, UIAnimationTransitionLibrary, de transiciones listas para usar
  • Un objeto de temporizador, UIAnimationTimer, para determinar la hora actual y, opcionalmente, para conducir la animación
  • Enlaces de eventos para supervisar el estado y el progreso de la animación

Para obtener la referencia de API completa, consulte Referencia de animación de Windows. Para obtener código de ejemplo, vea Tareas de animación de Windows y Ejemplos de animación de Windows.

Configurations

Las aplicaciones deben obtener la hora actual antes de programar una nueva animación. A continuación se muestran los mecanismos de control de tiempo admitidos por la animación de Windows:

Animación de Application-Driven

Las aplicaciones que usan una API de gráficos aceleradas por hardware pueden sincronizarse con la frecuencia de actualización del monitor para representar animaciones fluidas. Como alternativa, una aplicación puede usar un mecanismo de control de tiempo propio para determinar cuándo dibujar cada fotograma de una animación. En cualquier caso, la aplicación indicará al administrador de animaciones cuándo actualizar su estado. Todavía se puede usar un temporizador de animación para determinar la hora actual con alta precisión, en las unidades requeridas por el administrador de animaciones.

En el diagrama siguiente se muestran las interacciones entre una aplicación y los componentes de animación de Windows cuando la aplicación impulsa las actualizaciones de animación directamente.

diagrama que muestra las interacciones entre una aplicación y los componentes de animación de Windows cuando la aplicación está impulsando las actualizaciones de animación directamente.

En la configuración más sencilla, una aplicación volverá a dibujar todo cada vez que se actualice la pantalla, incluso cuando no se estén reproduciendo animaciones. Para evitar el trabajo desperdiciado, una aplicación puede registrar un controlador de eventos de administrador para recibir una notificación cuando hay animaciones programadas y puede detectar cuándo la programación está vacía para que pueda dejar de dibujarse.

Animación de Timer-Driven

En lugar de actualizar directamente el administrador de animaciones, las aplicaciones pueden permitir que el temporizador de animación indique al administrador de animaciones cuándo actualizar su estado y simplemente recibir notificaciones cuando se haya realizado cada actualización. Este enfoque se recomienda para las API de gráficos anteriores. En general, si es posible sincronizar con la frecuencia de actualización del monitor, es mejor hacerlo y usar la animación controlada por aplicaciones.

En el diagrama siguiente se muestran las interacciones entre una aplicación y los componentes de animación de Windows cuando el temporizador de animación está impulsando las actualizaciones de animación.

diagrama que muestra las interacciones entre una aplicación y los componentes de animación de Windows cuando el temporizador de animación está impulsando las actualizaciones de animación.

El temporizador se puede configurar para ejecutarse solo cuando se programan las animaciones; hacerlo es una cuestión sencilla de pasar un parámetro determinado cuando el temporizador y el administrador de animaciones están conectados.

Características avanzadas

Más allá de una base básica para admitir la animación, La animación de Windows incluye compatibilidad con varias técnicas avanzadas de animación, entre las que se incluyen:

duración sensible al contexto

No es necesario corregir la duración de una transición; se puede determinar en función del valor y la velocidad de la variable animada cuando comienza la transición.

coincidencia de velocidad

Por lo general, el movimiento es más agradable para el ojo si la posición y la velocidad de un objeto móvil no saltan instantáneamente entre los valores. Cuando un nuevo guión gráfico interrumpe uno que está jugando actualmente, la coincidencia de velocidad permite que el nuevo guión gráfico se recoja sin problemas donde finalizó el anterior.

administración de contención

Si dos guiones gráficos necesitan actualizar simultáneamente la misma variable de animación, se produce un conflicto de programación. En lugar de requerir una prioridad numérica específica para cada guión gráfico, la animación de Windows permite a la aplicación determinar las prioridades relativas de dos guiones gráficos.

Administración de contención

Los desarrolladores pueden implementar una devolución de llamada de comparación de prioridades para comparar la prioridad del guión gráfico de la programación y el guión gráfico que ya está en la programación. Una aplicación que implementa una comparación de prioridades puede usar cualquier lógica preferida para determinar cuándo un guión gráfico vacía previamente otro. Para resolver el conflicto de programación, La animación de Windows pregunta a la aplicación cuál de estas acciones se puede realizar, en el orden siguiente:

  • Cancele el guión gráfico programado. Si el guión gráfico programado aún no ha empezado a reproducirse, es posible que se cancele e quite inmediatamente de la programación.
  • Recorte el guión gráfico programado. Cuando un nuevo guión gráfico recorta un guión gráfico programado, el guión gráfico programado deja de afectar a la variable en cuanto el nuevo guión gráfico comienza a animarlo. Las velocidades coinciden, lo que permite que el nuevo guión gráfico se recoja sin problemas donde se dejó el anterior.
  • Concluye el guión gráfico programado. Solo se puede concluir un guión gráfico si contiene un bucle que se repite indefinidamente. Si el guión gráfico está en un bucle así cuando finaliza, se completa la repetición actual y, a continuación, se reproduce el resto del guión gráfico. Si el bucle aún no se ha iniciado cuando se concluye un guión gráfico, el bucle se omite por completo.
  • Comprima el guión gráfico programado. Si recortar o cancelar el guión gráfico programado no es una opción, el guión gráfico puede completarse. La animación de Windows presenta la posibilidad de comprimir el tiempo disponible para el guión gráfico programado (y los guiones gráficos programados antes), por lo que las variables alcanzan su estado final más rápidamente. Cuando se aplica la compresión, el tiempo se acelera temporalmente para los guiones gráficos afectados, por lo que juegan más rápido.

Si ninguno de los objetos de comparación de prioridad registrados permite ninguna de las acciones anteriores, se produce un error al intentar programar el nuevo guión gráfico. De forma predeterminada, todos los guiones gráficos se pueden recortar, concluir o comprimir para evitar errores, pero no se puede cancelar ninguno.

En el diagrama siguiente se muestra el ciclo de vida de un guión gráfico mediante los estados definidos por la enumeración UI_ANIMATION_STORYBOARD_STATUS . Las aplicaciones usan la API de animación de Windows para crear un guión gráfico y enviarlo para su programación. El administrador de animaciones programa el guión gráfico y administra la animación.

diagrama que muestra cómo el administrador de animaciones programa el guión gráfico y administra la animación.

Para obtener más información sobre la programación y administración del guión gráfico, consulte Información general sobre guion gráfico.

Referencia de animación de Windows

Ejemplos de animación de Windows

Tareas de animación de Windows