Compartir a través de


CAnimationController (clase)

Implementa el controlador de animación, que proporciona una interfaz central para crear y administrar las animaciones.

Sintaxis

class CAnimationController : public CObject;

Miembros

Constructores públicos

Nombre Descripción
CAnimationController::CAnimationController Construye un controlador de animación.
CAnimationController::~CAnimationController El destructor . Se llama cuando se va a destruir el objeto de controlador de animación.

Métodos públicos

Nombre Descripción
CAnimationController::AddAnimationObject Agrega un objeto de animación a un grupo que pertenece al controlador de animación.
CAnimationController::AddKeyframeToGroup Agrega un fotograma clave al grupo.
CAnimationController::AnimateGroup Prepara un grupo para ejecutar la animación y, opcionalmente, la programa.
CAnimationController::CleanUpGroup Con sobrecarga. Lo llama el marco para limpiar el grupo cuando se ha programado la animación.
CAnimationController::CreateKeyframe Con sobrecarga. Crea un fotograma clave que depende de la transición y lo agrega al grupo especificado.
CAnimationController::EnableAnimationManagerEvent Establece o libera un controlador al que llamar cuando cambia el estado del administrador de animaciones.
CAnimationController::EnableAnimationTimerEventHandler Establece o libera un controlador para eventos de temporización y otro para actualizaciones de temporización.
CAnimationController::EnablePriorityComparisonHandler Establece o libera el controlador de comparación de prioridad al que llamar para determinar si un guion gráfico programado se puede cancelar, concluir, recortar o comprimir.
CAnimationController::EnableStoryboardEventHandler Establece o libera un controlador para los eventos de estado y actualización del guion gráfico.
CAnimationController::FindAnimationGroup Con sobrecarga. Busca un grupo de animaciones por su guion gráfico.
CAnimationController::FindAnimationObject Busca el objeto de animación que contiene una variable de animación especificada.
CAnimationController::GetKeyframeStoryboardStart Devuelve un fotograma clave que identifica el inicio del guion gráfico.
CAnimationController::GetUIAnimationManager Proporciona acceso al objeto IUIAnimationManager encapsulado.
CAnimationController::GetUIAnimationTimer Proporciona acceso al objeto IUIAnimationTimer encapsulado.
CAnimationController::GetUITransitionFactory Puntero a la interfaz IUIAnimationTransitionFactory o NULL, si se ha producido un error en la creación de la biblioteca de transiciones.
CAnimationController::GetUITransitionLibrary Proporciona acceso al objeto IUIAnimationTransitionLibrary encapsulado.
CAnimationController::IsAnimationInProgress Indica si al menos un grupo está reproduciendo la animación.
CAnimationController::IsValid Indica si el controlador de animación es válido.
CAnimationController::OnAnimationIntegerValueChanged Lo llama el marco cuando el valor entero de la variable de animación ha cambiado.
CAnimationController::OnAnimationManagerStatusChanged Lo llama el marco en respuesta al evento StatusChanged del administrador de animaciones.
CAnimationController::OnAnimationTimerPostUpdate Lo llama el marco una vez finalizada una actualización de animación.
CAnimationController::OnAnimationTimerPreUpdate Lo llama el marco antes de que comience una actualización de animación.
CAnimationController::OnAnimationTimerRenderingTooSlow Lo llama el marco cuando la velocidad de fotogramas que se presenta en una animación cae por debajo de una velocidad de fotogramas mínima deseada.
CAnimationController::OnAnimationValueChanged Lo llama el marco cuando el valor de la variable de animación ha cambiado.
CAnimationController::OnBeforeAnimationStart Lo llama el marco justo antes de programar la animación.
CAnimationController::OnHasPriorityCancel Lo llama el marco para resolver los conflictos de programación.
CAnimationController::OnHasPriorityCompress Lo llama el marco para resolver los conflictos de programación.
CAnimationController::OnHasPriorityConclude Lo llama el marco para resolver los conflictos de programación.
CAnimationController::OnHasPriorityTrim Lo llama el marco para resolver los conflictos de programación.
CAnimationController::OnStoryboardStatusChanged Lo llama el marco cuando el estado del guion gráfico ha cambiado.
CAnimationController::OnStoryboardUpdated Lo llama el marco cuando se ha actualizado el guion gráfico.
CAnimationController::RemoveAllAnimationGroups Quita todos los grupos de animaciones del controlador de animación.
CAnimationController::RemoveAnimationGroup Quita un grupo de animaciones con el identificador especificado del controlador de animación.
CAnimationController::RemoveAnimationObject Quita un objeto de animación del controlador de animación.
CAnimationController::RemoveTransitions Quita las transiciones de los objetos de animación que pertenecen al grupo especificado.
CAnimationController::ScheduleGroup Programa una animación.
CAnimationController::SetRelatedWnd Establece una relación entre el controlador de animación y una ventana.
CAnimationController::UpdateAnimationManager Indica al administrador de animaciones que actualice los valores de todas las variables de animación.

Métodos protegidos

Nombre Descripción
CAnimationController::CleanUpGroup Con sobrecarga. Asistente que limpia el grupo.
CAnimationController::OnAfterSchedule Lo llama el marco cuando se acaba de programar una animación del grupo especificado.

Miembros de datos protegidos

Nombre Descripción
CAnimationController::gkeyframeStoryboardStart Fotograma clave que representa el inicio del guion gráfico.
CAnimationController::m_bIsValid Especifica si un controlador de animación es válido o no. Este miembro se establece en FALSE si el sistema operativo actual no admite la API de animación de Windows.
CAnimationController::m_lstAnimationGroups Lista de grupos de animaciones que pertenecen a este controlador de animación.
CAnimationController::m_pAnimationManager Almacena un puntero al objeto COM del administrador de animaciones.
CAnimationController::m_pAnimationTimer Almacena un puntero al objeto COM del temporizador de animaciones.
CAnimationController::m_pRelatedWnd Puntero a un objeto CWnd relacionado que se puede volver a dibujar automáticamente cuando el estado del administrador de animaciones ha cambiado o se ha producido un evento posterior a la actualización. Puede ser NULL.
CAnimationController::m_pTransitionFactory Almacena un puntero al objeto COM de la fábrica de transiciones.
CAnimationController::m_pTransitionLibrary Almacena un puntero al objeto COM de la biblioteca de transiciones.

Comentarios

La clase CAnimationController es la clase clave que administra las animaciones. Puede crear una o varias instancias del controlador de animación en una aplicación y, opcionalmente, conectar una instancia del controlador de animación a un objeto CWnd mediante CAnimationController::SetRelatedWnd. Esta conexión es necesaria para enviar mensajes WM_PAINT a la ventana relacionada automáticamente cuando el estado del administrador de animaciones ha cambiado o se ha actualizado el temporizador de animación. Si no habilita esta relación, debe volver a dibujar una ventana que muestre una animación manualmente. Para este fin, puede derivar una clase de CAnimationController e invalidar OnAnimationManagerStatusChanged o OnAnimationTimerPostUpdate e invalidar una o varias ventanas cuando sea necesario.

Jerarquía de herencia

CObject

CAnimationController

Requisitos

Encabezado: afxanimationcontroller.h

CAnimationController::~CAnimationController

El destructor . Se llama cuando se va a destruir el objeto de controlador de animación.

virtual ~CAnimationController(void);

CAnimationController::AddAnimationObject

Agrega un objeto de animación a un grupo que pertenece al controlador de animación.

CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);

Parámetros

pObject
Puntero a un objeto de animación.

Valor devuelto

Puntero a un grupo de animaciones existente o nuevo donde se ha agregado pObject si la función se ejecuta correctamente; NULL si pObject ya se ha agregado a un grupo que pertenece a otro controlador de animación.

Comentarios

Llame a este método para agregar un objeto de animación al controlador de animación. Se agrega un objeto a un grupo según el valor GroupID del objeto (vea CAnimationBaseObject::SetID). El controlador de animación crea un nuevo grupo si es el primer objeto que se va a agregar con el valor GroupID especificado. Un objeto de animación solo se puede agregar a un controlador de animación. Si necesita agregar un objeto a otro controlador, primero llame a RemoveAnimationObject. Si llama a SetID con el nuevo valor GroupID de un objeto que ya se ha agregado a un grupo, el objeto se quita del grupo anterior y se agrega a otro grupo con el identificador especificado.

CAnimationController::AddKeyframeToGroup

Agrega un fotograma clave al grupo.

BOOL AddKeyframeToGroup(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe);

Parámetros

nGroupID
Especifica el identificador de grupo.

pKeyframe
Puntero a un fotograma clave.

Valor devuelto

TRUE si la función se ejecuta correctamente; de lo contrario, FALSE.

Comentarios

Normalmente no es necesario llamar a este método; use CAnimationController::CreateKeyframe en su lugar, que crea y agrega el fotograma clave creado a un grupo automáticamente.

CAnimationController::AnimateGroup

Prepara un grupo para ejecutar la animación y, opcionalmente, la programa.

BOOL AnimateGroup(
    UINT32 nGroupID,
    BOOL bScheduleNow = TRUE);

Parámetros

nGroupID
Especifica el valor GroupID.

bScheduleNow
Especifica si se va a ejecutar la animación inmediatamente.

Valor devuelto

TRUE si la animación se ha programado y ejecutado correctamente.

Comentarios

Este método realiza el trabajo real de crear el guion gráfico, agregar variables de animación, aplicar transiciones y establecer fotogramas clave. Es posible retrasar la programación si se establece bScheduleNow en FALSE. En este caso, el grupo especificado contiene un guion gráfico configurado para la animación. En ese punto es posible configurar eventos para el guion gráfico y las variables de animación. Cuando realmente necesite ejecutar la animación, llame a CAnimationController::ScheduleGroup.

CAnimationController::CAnimationController

Construye un controlador de animación.

CAnimationController(void);

CAnimationController::CleanUpGroup

Lo llama el marco para limpiar el grupo cuando se ha programado la animación.

void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);

Parámetros

nGroupID
Especifica el valor GroupID.

pGroup
Puntero al grupo de animaciones que se va a limpiar.

Comentarios

Este método quita todas las transiciones y los fotogramas clave del grupo especificado, porque no son relevantes después de programar una animación.

CAnimationController::CreateKeyframe

Crea un fotograma clave que depende de la transición y lo agrega al grupo especificado.

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseTransition* pTransition);

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe,
    UI_ANIMATION_SECONDS offset = 0.0);

Parámetros

nGroupID
Especifica el identificador de grupo para el que se crea el fotograma clave.

pTransition
Puntero a la transición. El fotograma clave se insertará en el guion gráfico después de esta transición.

pKeyframe
Puntero al fotograma clave base de este fotograma clave.

offset
Desplazamiento en segundos desde el fotograma clave base especificado por pKeyframe.

Valor devuelto

Puntero al fotograma clave recién creado si la función se ejecuta correctamente.

Comentarios

Puede almacenar el puntero devuelto y basar otros fotogramas clave en el fotograma clave recién creado (véase la segunda sobrecarga). Es posible iniciar las transiciones en los fotogramas clave (véase CBaseTransition::SetKeyframes). No es necesario eliminar fotogramas clave creados de esta manera, ya que los grupos de animación los eliminan automáticamente. Tenga cuidado al crear fotogramas clave basados en otros fotogramas clave y transiciones, y evite las referencias circulares.

CAnimationController::EnableAnimationManagerEvent

Establece o libera un controlador al que llamar cuando cambia el estado del administrador de animaciones.

virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);

Parámetros

bEnable
Especifica si se va a establecer o liberar un controlador.

Valor devuelto

TRUE si el controlador se ha establecido o liberado correctamente.

Comentarios

Cuando se establece un controlador (habilitado), la animación de Windows llama a OnAnimationManagerStatusChanged cuando cambia el estado del administrador de animaciones.

CAnimationController::EnableAnimationTimerEventHandler

Establece o libera un controlador para eventos de temporización y otro para actualizaciones de temporización.

virtual BOOL EnableAnimationTimerEventHandler(
    BOOL bEnable = TRUE,
    UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);

Parámetros

bEnable
Especifica si se van a establecer o liberar los controladores.

idleBehavior
Especifica el comportamiento de inactividad del controlador de actualización del temporizador.

Valor devuelto

TRUE si los controladores se han establecido o liberado correctamente; FALSE si se llama a este método por segunda vez sin liberar primero los controladores, o si se produce algún otro error.

Comentarios

Cuando se establecen los controladores (habilitados), la API de animación de Windows llama a los métodos OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow. Debe habilitar temporizadores de animación para permitir que la API de animación de Windows actualice guiones gráficos. De lo contrario, va a tener que llamar a CAnimationController::UpdateAnimationManager para indicar al administrador de animaciones que actualice los valores de todas las variables de animación.

CAnimationController::EnablePriorityComparisonHandler

Establece o libera el controlador de comparación de prioridad al que llamar para determinar si un guion gráfico programado se puede cancelar, concluir, recortar o comprimir.

virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);

Parámetros

dwHandlerType
Combinación de marcas UI_ANIMATION_PHT_ (vea los comentarios) que especifica qué controladores se van a establecer o liberar.

Valor devuelto

TRUE si el controlador se ha establecido o liberado correctamente.

Comentarios

Cuando se establece un controlador (habilitado), la animación de Windows llama a los siguientes métodos virtuales en función de dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler puede ser una combinación de las siguientes marcas: UI_ANIMATION_PHT_NONE: libera todos los controladores UI_ANIMATION_PHT_CANCEL: establece el controlador de comparación de cancelación UI_ANIMATION_PHT_CONCLUDE: establece el controlador de comparación de conclusión UI_ANIMATION_PHT_COMPRESS: establece el controlador de comparación de compresión UI_ANIMATION_PHT_TRIM: establece el controlador de comparación de recorte UI_ANIMATION_PHT_CANCEL_REMOVE: quita el controlador de comparación de cancelación UI_ANIMATION_PHT_CONCLUDE_REMOVE: quita el controlador de comparación de conclusión UI_ANIMATION_PHT_COMPRESS_REMOVE: quita el controlador de comparación de compresión UI_ANIMATION_PHT_TRIM_REMOVE: quita el controlador de comparación de recorte

CAnimationController::EnableStoryboardEventHandler

Establece o libera un controlador para los eventos de estado y actualización del guion gráfico.

virtual BOOL EnableStoryboardEventHandler(
    UINT32 nGroupID,
    BOOL bEnable = TRUE);

Parámetros

nGroupID
Especifica el identificador de grupo.

bEnable
Especifica si se va a establecer o liberar un controlador.

Valor devuelto

TRUE si el controlador se ha establecido o liberado correctamente; FALSE si el grupo de animaciones especificado se ha encontrado o la animación del grupo especificado no se ha iniciado y su guion gráfico interno es NULL.

Comentarios

Cuando se establece un controlador (habilitado), la API de animación de Windows llama a los métodos virtuales OnStoryboardStatusChanges y OnStoryboardUpdated. Se debe establecer un controlador después de llamar a CAnimationController::Animate para el grupo de animaciones especificado, ya que crea un objeto IUIAnimationStoryboard encapsulado.

CAnimationController::FindAnimationGroup

Busca un grupo de animaciones por su identificador de grupo.

CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);

Parámetros

nGroupID
Especifica un valor GroupID.

pStoryboard
Un puntero a un guion gráfico.

Valor devuelto

Puntero a un grupo de animaciones o NULL si no se encuentra el grupo con el identificador especificado.

Comentarios

Use este método para buscar un grupo de animaciones en tiempo de ejecución. Se crea un grupo y se agrega a la lista interna de grupos de animaciones cuando se va a agregar un primer objeto de animación con un valor GroupID determinado al controlador de animación.

CAnimationController::FindAnimationObject

Busca el objeto de animación que contiene una variable de animación especificada.

BOOL FindAnimationObject(
    IUIAnimationVariable* pVariable,
    CAnimationBaseObject** ppObject,
    CAnimationGroup** ppGroup);

Parámetros

pVariable
Puntero a la variable de animación.

ppObject
Salida. Contiene un puntero al objeto de animación o NULL.

ppGroup
Salida. Contiene un puntero al grupo de animaciones que contiene el objeto de animación, o NULL.

Valor devuelto

TRUE si se ha encontrado el objeto; en caso contrario, FALSE.

Comentarios

Se llama desde controladores de eventos cuando es necesario buscar un objeto de animación de una variable de animación entrante.

CAnimationController::gkeyframeStoryboardStart

Fotograma clave que representa el inicio del guion gráfico.

static CBaseKeyFrame gkeyframeStoryboardStart;

CAnimationController::GetKeyframeStoryboardStart

Devuelve un fotograma clave que identifica el inicio del guion gráfico.

static CBaseKeyFrame* GetKeyframeStoryboardStart();

Valor devuelto

Puntero al fotograma clave base, que identifica el inicio del guion gráfico.

Comentarios

Obtenga este fotograma clave para basar cualquier otro fotograma clave o transición en el momento en que se inicia un guion gráfico.

CAnimationController::GetUIAnimationManager

Proporciona acceso al objeto IUIAnimationManager encapsulado.

IUIAnimationManager* GetUIAnimationManager();

Valor devuelto

Puntero a la interfaz IUIAnimationManager o NULL si se ha producido un error en la creación del administrador de animaciones.

Comentarios

Si el sistema operativo actual no admite la API de animación de Windows, este método devuelve NULL y, después, todas las llamadas posteriores en CAnimationController::IsValid devuelven FALSE. Es posible que tenga que acceder a IUIAnimationManager para llamar a sus métodos de interfaz, que no están encapsulados por el controlador de animación.

CAnimationController::GetUIAnimationTimer

Proporciona acceso al objeto IUIAnimationTimer encapsulado.

IUIAnimationTimer* GetUIAnimationTimer();

Valor devuelto

Puntero a la interfaz IUIAnimationTimer o NULL si se ha producido un error en la creación del temporizador de animaciones.

Comentarios

Si el sistema operativo actual no admite la API de animación de Windows, este método devuelve NULL y, después, todas las llamadas posteriores en CAnimationController::IsValid devuelven FALSE.

CAnimationController::GetUITransitionFactory

Puntero a la interfaz IUIAnimationTransitionFactory o NULL, si se ha producido un error en la creación de la biblioteca de transiciones.

IUIAnimationTransitionFactory* GetUITransitionFactory();

Valor devuelto

Puntero a IUIAnimationTransitionFactory o NULL, si se ha producido un error en la creación de la fábrica de transiciones.

Comentarios

Si el sistema operativo actual no admite la API de animación de Windows, este método devuelve NULL y, después, todas las llamadas posteriores en CAnimationController::IsValid devuelven FALSE.

CAnimationController::GetUITransitionLibrary

Proporciona acceso al objeto IUIAnimationTransitionLibrary encapsulado.

IUIAnimationTransitionLibrary* GetUITransitionLibrary();

Valor devuelto

Puntero a la interfaz IUIAnimationTransitionLibrary o NULL, si se ha producido un error en la creación de la biblioteca de transiciones.

Comentarios

Si el sistema operativo actual no admite la API de animación de Windows, este método devuelve NULL y, después, todas las llamadas posteriores en CAnimationController::IsValid devuelven FALSE.

CAnimationController::IsAnimationInProgress

Indica si al menos un grupo está reproduciendo la animación.

virtual BOOL IsAnimationInProgress();

Valor devuelto

TRUE si hay una animación en curso para este controlador de animación; en caso contrario, FALSE.

Comentarios

Comprueba el estado del administrador de animaciones y devuelve TRUE si el estado es UI_ANIMATION_MANAGER_BUSY.

CAnimationController::IsValid

Indica si el controlador de animación es válido.

BOOL IsValid() const;

Valor devuelto

TRUE si el controlador de animación es válido; en caso contrario, FALSE.

Comentarios

Este método devuelve FALSE solo si la API de animación de Windows no se admite en el sistema operativo actual y se ha producido un error en la creación del administrador de animaciones porque no está registrado. Debe llamar a GetUIAnimationManager al menos una vez después de la inicialización de bibliotecas COM para provocar la configuración de esta marca.

CAnimationController::m_bIsValid

Especifica si un controlador de animación es válido o no. Este miembro se establece en FALSE si el sistema operativo actual no admite la API de animación de Windows.

BOOL m_bIsValid;

CAnimationController::m_lstAnimationGroups

Lista de grupos de animaciones que pertenecen a este controlador de animación.

CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;

CAnimationController::m_pAnimationManager

Almacena un puntero al objeto COM del administrador de animaciones.

ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;

CAnimationController::m_pAnimationTimer

Almacena un puntero al objeto COM del temporizador de animaciones.

ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;

CAnimationController::m_pRelatedWnd

Puntero a un objeto CWnd relacionado que se puede volver a dibujar automáticamente cuando el estado del administrador de animaciones ha cambiado o se ha producido un evento posterior a la actualización. Puede ser NULL.

CWnd* m_pRelatedWnd;

CAnimationController::m_pTransitionFactory

Almacena un puntero al objeto COM de la fábrica de transiciones.

ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;

CAnimationController::m_pTransitionLibrary

Almacena un puntero al objeto COM de la biblioteca de transiciones.

ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;

CAnimationController::OnAfterSchedule

Lo llama el marco cuando se acaba de programar una animación del grupo especificado.

virtual void OnAfterSchedule(CAnimationGroup* pGroup);

Parámetros

pGroup
Puntero a un grupo de animaciones que se ha programado.

Comentarios

La implementación predeterminada quita los fotogramas clave del grupo especificado y realiza transiciones desde variables de animación que pertenecen al grupo especificado. Se puede invalidar en una clase derivada para llevar a cabo acciones adicionales en la programación de animación.

CAnimationController::OnAnimationIntegerValueChanged

Lo llama el marco cuando el valor entero de la variable de animación ha cambiado.

virtual void OnAnimationIntegerValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    INT32 newValue,
    INT32 prevValue);

Parámetros

pGroup
Puntero a un grupo de animaciones que contiene un objeto de animación cuyo valor ha cambiado.

pObject
Puntero a un objeto de animación que contiene una variable de animación cuyo valor ha cambiado.

variable
Puntero a una variable de animación.

newValue
Especifica un nuevo valor.

prevValue
Especifica el valor anterior.

Comentarios

Se llama a este método si se habilitan eventos de variables de animación con EnableIntegerValueChangedEvent llamado para una variable de animación o un objeto de animación específicos. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación.

CAnimationController::OnAnimationManagerStatusChanged

Lo llama el marco en respuesta al evento StatusChanged del administrador de animaciones.

virtual void OnAnimationManagerStatusChanged(
    UI_ANIMATION_MANAGER_STATUS newStatus,
    UI_ANIMATION_MANAGER_STATUS previousStatus);

Parámetros

newStatus
Nuevo estado del administrador de animaciones.

previousStatus
Estado anterior del administrador de animaciones.

Comentarios

Se llama a este método si se habilitan eventos del administrador de animaciones con EnableAnimationManagerEvent. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación. La implementación predeterminada actualiza una ventana relacionada si se ha establecido con SetRelatedWnd.

CAnimationController::OnAnimationTimerPostUpdate

Lo llama el marco una vez finalizada una actualización de animación.

virtual void OnAnimationTimerPostUpdate();

Comentarios

Se llama a este método si se habilitan controladores de eventos de temporizador mediante EnableAnimationTimerEventHandler. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación.

CAnimationController::OnAnimationTimerPreUpdate

Lo llama el marco antes de que comience una actualización de animación.

virtual void OnAnimationTimerPreUpdate();

Comentarios

Se llama a este método si se habilitan controladores de eventos de temporizador mediante EnableAnimationTimerEventHandler. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación.

CAnimationController::OnAnimationTimerRenderingTooSlow

Lo llama el marco cuando la velocidad de fotogramas que se presenta en una animación cae por debajo de una velocidad de fotogramas mínima deseada.

virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);

Parámetros

fps
Velocidad de fotogramas actual en fotogramas por segundo.

Comentarios

Se llama a este método si se habilitan controladores de eventos de temporizador mediante EnableAnimationTimerEventHandler. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación. La velocidad de fotogramas mínima deseada se especifica mediante una llamada a IUIAnimationTimer::SetFrameRateThreshold.

CAnimationController::OnAnimationValueChanged

Lo llama el marco cuando el valor de la variable de animación ha cambiado.

virtual void OnAnimationValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    DOUBLE newValue,
    DOUBLE prevValue);

Parámetros

pGroup
Puntero a un grupo de animaciones que contiene un objeto de animación cuyo valor ha cambiado.

pObject
Puntero a un objeto de animación que contiene una variable de animación cuyo valor ha cambiado.

variable
Puntero a una variable de animación.

newValue
Especifica un nuevo valor.

prevValue
Especifica el valor anterior.

Comentarios

Se llama a este método si se habilitan eventos de variables de animación con EnableValueChangedEvent llamado para una variable de animación o un objeto de animación específicos. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación.

CAnimationController::OnBeforeAnimationStart

Lo llama el marco justo antes de programar la animación.

virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);

Parámetros

pGroup
Puntero a un grupo de animaciones cuya animación está a punto de iniciarse.

Comentarios

Esta llamada se enruta a CWnd relacionado y se puede invalidar en una clase derivada para realizar acciones adicionales antes de que se inicie la animación del grupo especificado.

CAnimationController::OnHasPriorityCancel

Lo llama el marco para resolver los conflictos de programación.

virtual BOOL OnHasPriorityCancel(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parámetros

pGroupScheduled
El grupo que posee el guion gráfico actualmente programado.

pGroupNew
El grupo que posee el nuevo guion gráfico que está en conflicto de programación con el guion gráfico programado que pertenece a pGroupScheduled.

priorityEffect
Efecto potencial en pGroupNew si pGroupScheduled tiene una prioridad más alta.

Valor devuelto

Debe devolver TRUE si el guion gráfico propiedad de pGroupNew tiene prioridad. Debe devolver FALSE si el guion gráfico propiedad de pGroupNew tiene prioridad.

Comentarios

Se llama a este método si se habilitan eventos de comparación de prioridad mediante CAnimationController::EnablePriorityComparisonHandler y se especifica UI_ANIMATION_PHT_CANCEL. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación. Lea la documentación de la API de animación de Windows para obtener más información sobre la administración de conflictos.

CAnimationController::OnHasPriorityCompress

Lo llama el marco para resolver los conflictos de programación.

virtual BOOL OnHasPriorityCompress(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parámetros

pGroupScheduled
El grupo que posee el guion gráfico actualmente programado.

pGroupNew
El grupo que posee el nuevo guion gráfico que está en conflicto de programación con el guion gráfico programado que pertenece a pGroupScheduled.

priorityEffect
Efecto potencial en pGroupNew si pGroupScheduled tiene una prioridad más alta.

Valor devuelto

Debe devolver TRUE si el guion gráfico propiedad de pGroupNew tiene prioridad. Debe devolver FALSE si el guion gráfico propiedad de pGroupNew tiene prioridad.

Comentarios

Se llama a este método si se habilitan eventos de comparación de prioridad mediante CAnimationController::EnablePriorityComparisonHandler y se especifica UI_ANIMATION_PHT_COMPRESS. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación. Lea la documentación de la API de animación de Windows para obtener más información sobre la administración de conflictos.

CAnimationController::OnHasPriorityConclude

Lo llama el marco para resolver los conflictos de programación.

virtual BOOL OnHasPriorityConclude(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parámetros

pGroupScheduled
El grupo que posee el guion gráfico actualmente programado.

pGroupNew
El grupo que posee el nuevo guion gráfico que está en conflicto de programación con el guion gráfico programado que pertenece a pGroupScheduled.

priorityEffect
Efecto potencial en pGroupNew si pGroupScheduled tiene una prioridad más alta.

Valor devuelto

Debe devolver TRUE si el guion gráfico propiedad de pGroupNew tiene prioridad. Debe devolver FALSE si el guion gráfico propiedad de pGroupNew tiene prioridad.

Comentarios

Se llama a este método si se habilitan eventos de comparación de prioridad mediante CAnimationController::EnablePriorityComparisonHandler y se especifica UI_ANIMATION_PHT_CONCLUDE. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación. Lea la documentación de la API de animación de Windows para obtener más información sobre la administración de conflictos.

CAnimationController::OnHasPriorityTrim

Lo llama el marco para resolver los conflictos de programación.

virtual BOOL OnHasPriorityTrim(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parámetros

pGroupScheduled
El grupo que posee el guion gráfico actualmente programado.

pGroupNew
El grupo que posee el nuevo guion gráfico que está en conflicto de programación con el guion gráfico programado que pertenece a pGroupScheduled.

priorityEffect
Efecto potencial en pGroupNew si pGroupScheduled tiene una prioridad más alta.

Valor devuelto

Debe devolver TRUE si el guion gráfico propiedad de pGroupNew tiene prioridad. Debe devolver FALSE si el guion gráfico propiedad de pGroupNew tiene prioridad.

Comentarios

Se llama a este método si se habilitan eventos de comparación de prioridad mediante CAnimationController::EnablePriorityComparisonHandler y se especifica UI_ANIMATION_PHT_TRIM. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación. Lea la documentación de la API de animación de Windows para obtener más información sobre la administración de conflictos.

CAnimationController::OnStoryboardStatusChanged

Lo llama el marco cuando el estado del guion gráfico ha cambiado.

virtual void OnStoryboardStatusChanged(
    CAnimationGroup* pGroup,
    UI_ANIMATION_STORYBOARD_STATUS newStatus,
    UI_ANIMATION_STORYBOARD_STATUS previousStatus);

Parámetros

pGroup
Puntero a un grupo de animaciones que posee el guion gráfico cuyo estado ha cambiado.

newStatus
Especifica el nuevo estado.

previousStatus
Especifica el estado anterior.

Comentarios

Se llama a este método si se habilitan eventos de guion gráfico mediante CAnimationController::EnableStoryboardEventHandler. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación.

CAnimationController::OnStoryboardUpdated

Lo llama el marco cuando se ha actualizado el guion gráfico.

virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);

Parámetros

pGroup
Puntero a un grupo que posee el guion gráfico.

Comentarios

Se llama a este método si se habilitan eventos de guion gráfico mediante CAnimationController::EnableStoryboardEventHandler. Se puede invalidar en una clase derivada para realizar acciones específicas de la aplicación.

CAnimationController::RemoveAllAnimationGroups

Quita todos los grupos de animaciones del controlador de animación.

void RemoveAllAnimationGroups();

Comentarios

Todos los grupos se eliminan y su puntero, si se almacenaba en el nivel de aplicación, debe invalidarse. Si CAnimationGroup::m_bAutodestroyAnimationObjects de un grupo que se va a eliminar es TRUE, se eliminan todos los objetos de animación que pertenecen a ese grupo; de lo contrario, sus referencias al controlador de animación primario se establecen en NULL y se pueden agregar a otro controlador.

CAnimationController::RemoveAnimationGroup

Quita un grupo de animaciones con el identificador especificado del controlador de animación.

void RemoveAnimationGroup(UINT32 nGroupID);

Parámetros

nGroupID
Especifica el identificador del grupo de animaciones.

Comentarios

Este método quita un grupo de animaciones de la lista interna de grupos y lo elimina, por lo tanto, si almacena un puntero a ese grupo de animaciones, se debe invalidar. Si CAnimationGroup::m_bAutodestroyAnimationObjects es TRUE, se eliminan todos los objetos de animación que pertenecen a ese grupo; de lo contrario, sus referencias al controlador de animación primario se establecen en NULL y se pueden agregar a otro controlador.

CAnimationController::RemoveAnimationObject

Quita un objeto de animación del controlador de animación.

void RemoveAnimationObject(
    CAnimationBaseObject* pObject,
    BOOL bNoDelete = FALSE);

Parámetros

pObject
Puntero a un objeto de animación.

bNoDelete
Si este parámetro es TRUE, el objeto no se elimina al quitarlo.

Comentarios

Quita un objeto de animación del controlador de animación y del grupo de animaciones. Llame a esta función si ya no se debe animar nunca más un objeto determinado o si necesita mover el objeto a otro controlador de animación. En el último caso, bNoDelete debe ser TRUE.

CAnimationController::RemoveTransitions

Quita las transiciones de los objetos de animación que pertenecen al grupo especificado.

void RemoveTransitions(UINT32 nGroupID);

Parámetros

nGroupID
Especifica el identificador de grupo.

Comentarios

El grupo recorre en bucle sus objetos de animación y llama a ClearTransitions(FALSE) por cada objeto de animación. El marco llama a este método una vez programada la animación.

CAnimationController::ScheduleGroup

Programa una animación.

BOOL ScheduleGroup(
    UINT32 nGroupID,
    UI_ANIMATION_SECONDS time = 0.0);

Parámetros

nGroupID
Especifica el identificador del grupo de animaciones que se va a programar.

time
Especifica el tiempo que se va a programar.

Valor devuelto

TRUE si la animación se ha programado correctamente. FALSE si no se ha creado el guion gráfico o se produce otro error.

Comentarios

Debe llamar a AnimateGroup con el parámetro bScheduleNow establecido en FALSE antes de ScheduleGroup. Puede especificar el tiempo de animación deseado obtenido de IUIAnimationTimer::GetTime. Si el parámetro de tiempo es 0.0, la animación se programa para la hora actual.

CAnimationController::SetRelatedWnd

Establece una relación entre el controlador de animación y una ventana.

void SetRelatedWnd(CWnd* pWnd);

Parámetros

pWnd
Puntero al objeto de ventana que se va a establecer.

Comentarios

Si se establece un objeto CWnd relacionado, el controlador de animación puede actualizarlo automáticamente (enviar el mensaje WM_PAINT) cuando el estado del administrador de animaciones ha cambiado o se ha producido un evento posterior a la actualización del temporizador.

CAnimationController::UpdateAnimationManager

Indica al administrador de animaciones que actualice los valores de todas las variables de animación.

virtual void UpdateAnimationManager();

Comentarios

Al llamar a este método, el administrador de animaciones avanza a la hora actual, cambia los estados de los guiones gráficos según sea necesario y actualiza las variables de animación a los valores interpolados adecuados. Internamente, este método llama a IUIAnimationTimer::GetTime(timeNow) e IUIAnimationManager::Update(timeNow). Invalide este método en una clase derivada para personalizar este comportamiento.

Consulte también

Clases