MXPA04006333A - Sistema que soporta la animacion de elementos de despliegue graficos a traves de instancias de objetos de animacion. - Google Patents
Sistema que soporta la animacion de elementos de despliegue graficos a traves de instancias de objetos de animacion.Info
- Publication number
- MXPA04006333A MXPA04006333A MXPA04006333A MXPA04006333A MXPA04006333A MX PA04006333 A MXPA04006333 A MX PA04006333A MX PA04006333 A MXPA04006333 A MX PA04006333A MX PA04006333 A MXPA04006333 A MX PA04006333A MX PA04006333 A MXPA04006333 A MX PA04006333A
- Authority
- MX
- Mexico
- Prior art keywords
- animation
- property
- class
- value
- collection
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2213/00—Indexing scheme for animation
- G06T2213/04—Animation description language
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Se describe un sistema de animacion de despliegue grafico que soporta modificacion cronometrada de los valores de propiedad del elemento dentro de un despliegue grafico. El sistema de animacion utiliza una estructura de despliegue para mantener un grupo de elementos correspondientes a objetos desplegados dentro de una escena graficamente desplegada. Los elementos incluyen un valor de propiedad variable. El sistema de animacion tambien utiliza un sistema de propiedades que mantiene las propiedades asociadas con elementos mantenidos por la estructura de despliegue. Las propiedades incluyen propiedades dinamicas que son capaces de cambiar a traves del tiempo, y de esta manera afectan la apariencia del elemento correspondiente en un despliegue grafico. El sistema de animacion incluye clases de animacion, a partir de las cuales los objetos de animacion son especificamente definidos y asociados con una propiedad del elemento en el tiempo de produccion. Las instancias del objeto de animacion proporcionan valores variantes en el tiempo que afectan los valores asignaos a la s propiedades dinamicas mantenidas por el sistema de propiedades.
Description
1 SISTEMA QUE SOPORTA LA ANIMACION DE ELEMENTOS DE DESPLIGUE GRAFICOS A TRAVES DE INSTANCIAS DE OBJETOS
DE ANIMACION
CAMPO DE LA INVENCION
La presente invención se refiere en general a dispositivos de computación. Más particularmente, la presente invención se refiere a componentes del sistema de computación y sub-sistemas para mantener y proveer vistas de la interfase de usuario gráficas manejadas por entradas de datos e instrucciones de un sistema operativo y/o aplicaciones.
ANTECEDENTES DE LA INVENCION
Las interfases de usuario gráficas por su naturaleza son altamente visuales. Una sesión interactiva típica involucrando una interfase de usuario y de usuario gráfica incluye múltiples instancias de un usuario ejecutando una acción con respecto a un elemento desplegado (por ejemplo, moviendo un apuntador y seleccionando un icono o control) para invocar una operación y después visualmente observar las consecuencias de la operación. Una forma de atraer la atención del usuario a elementos particulares en una interfase de usuario gráfica, para indicar un estado activo o de cambio, es a través de animación del elemento gráfico. La animación, como se 2 utiliza aquí, incluye cambiar la apariencia o ubicación de un elemento de despliegue gráfico (por ejemplo, un icono, un control, una ventana, etc.) a través de una secuencia de cambios increméntales al elemento de despliegue durante un período de tiempo. Sin embargo, la animación también incluye cambios en base al tiempo a elementos no visualmente desplegados. De esta manera, la animación, como se referencia aquí, comprende ambas animaciones visual (es decir, cambiando un valor del parámetro de despliegue visual) y no visual (es decir, cambiando un valor de parámetro a través del tiempo sin afectar un elemento de despliegue visual). La animación tiene el potencial de mejorar la facilidad de uso y petición de estética de sistemas y aplicaciones de computadora. Las interfases de usuario, y más particularmente interfases de usuario gráficas, ocupan un papel importante en las interacciones computadora/usuario. La animación mejora la experiencia de la interacción computadora/usuario proveyendo un tipo adicional de información o manera de transmitir el estado de un programa de computadora, o componente de la misma, al usuario. Por ejemplo, en lugar de causar que un artículo seleccionado meramente desaparezca o cambie instantáneamente, la animación habilita un progresión de cambios que van a ser desplegados que, en combinación con un contexto no entendido, informan a un usuario qué ha ocurrido (por ejemplo, un archivo eliminado flotando a una papelera de reciclaje). Además, muchos aprobarán que la animación 3 hace que la interacción con un sistema de computación sea más interesante y conduce a ios usuarios más efectivamente. Además, la animación también puede automatizar cambios a valores apropiados. En particular una aplicación en modo de usuario establece cronómetros manuales y después responder a esos cronómetros para cambiar un valor. La animación probablemente no está incorporada en muchas interfases de usuario en donde dicha animación podría ser benéfica para un usuario. Una razón es implemente el consto de los elementos de la inferíase de usuario de animación. Las animaciones por lo general son tareas consumidoras de tiempo/incómodas. Tomando un método de costo/beneficio para implementar una animación en interfases de usuario gráficas, el beneficio de incorporar ia animación excedería sus costos. Debido a costo relativamente alto actual de la programación de animaciones, muchas aplicaciones que se podrían beneficiar de la animación no están animadas debido a su costo de implementación relativamente alto. Una forma de reducir el costo de la animación es reutilizar la programación de la animación para múltiples usos diferentes. Sin embargo, el código de animación generalmente no se reutiliza. En su lugar, el código de animación de uso individual (aplicación) se programa completamente dentro de las aplicaciones mismas en un tiempo de desarrollo utilizando herramientas de programación. El comportamiento de la animación se define explícitamente dentro del código del programa compilado. Durante el tiempo de operación, la 4 animación se lleva a cabo meramente ejecutando el segmento de código previamente programado. Además de ser un esfuerzo consumidor de tiempo, la incorporación de la animación en un programa potencialmente resulta en un programa excesivamente grande debido a los datos detallados e instrucciones utilizados para llevar a cabo los comportamientos de la animación deseados en los elementos de despliegue. Los esfuerzos para mejorar la posibilidad de programar una animación en las interfases de usuario han resultado en el diseño y provisión de secuencias del script (lenguaje de programación) de animación no editable/monolíticas a partir de las cuales los segmentos de script ejecutables son referenciados para proveer un comportamiento de animación deseable. Dichos métodos de programación de animación conocidos, con base por ejemplo en el estándar del Lenguaje de Integración Multimedia Sincronizado (SMIL), incorpora la configuración de claves. Los métodos de configuración de claves cuentan con segmentos particulares referenciados de scripts de animación no editables, monolíticas. El método de configuración de claves conocido anterior exhibe una carencia relativa a la flexibilidad con respecto a la programación del comportamiento de la nueva animación en una interfase de usuario gráfica. El script de configuración de claves comprende una secuencia compilada, no editable de instrucciones de animación que cambian un elemento de despliegue (o composición de elementos) entre en inicio designado y un punto final. El método de animación 5 de configuración de claves de seleccionar dos puntos en una secuencia de animación y después ejecutar el script del programa entre esos dos puntos ayuda a los programadores a buscar la implementacion de la conducta de la animación modalizada dentro de los scripts creados/compilados previamente. Por lo tanto existe una necesidad de una forma más eficiente, y menos costosa de implementacion de las conductas interesantes, informativas y significativas de la animación en los despliegues de las interfases de usuario gráficas.
COMPENDIO DE LA INVENCION
Un sistema de animación descrito, a manera de ejemplo, y reclamado aquí más adelante, proporciona un marco de trabajo para definir, crear y ejecutar conductas de animación para ambos, elementos de despliegue de la interfase de usuario gráfica y valores de parámetro no visuales. La conducta de la animación, cuando se aplica a un elemento, causa que el valor asociado con la propiedad varíe a través del tiempo cuando el comportamiento de la animación está activo. El sistema de animación se incorpora dentro de un sistema que utiliza una estructura de despliegue para mantener un grupo de elementos que corresponden a los objetos desplegados dentro de una escena tal como una ventana de despliegue de una interfase de usuario gráfica del sistema de computadora. Los elementos incluyen 6 un valor de propiedad variable que afecta una característica de despliegue del elemento. Ejemplos de dicha propiedad variable es su posición, una dimensión, un color, opacidad, etc. El sistema de animación también utiliza un sistema de propiedad. El sistema de propiedad mantiene las propiedades asociadas con los elementos mantenidos por la estructura de despliegue. El sistema de propiedad soporta propiedades dinámicas, unas que son capaces de ser modificadas a través del tiempo. El sistema de animación también incluye clases de animación que especifican conductas de animación particulares ejecutables sobre un valor base. Los objetos de animación son demostrados a partir de las clases de animación. Dichas instancias de objetos de animación proporcionan valores variables en el tiempo que afectan valores asignados a las propiedades dinámicas. Dichos objetos de animación se crean y anexan a las propiedades mantenidas por el sistema de propiedad bajo la dirección de una aplicación que está dirigiendo un despliegue incluyendo los elementos que barrían a través del curso del tiempo de acuerdo con objetos de animación asociados.
BREVE DESCRIPCION DE LOS DIBUJOS
Ya que las reivindicaciones anexas establecen los aspectos de la presente invención con particularidad, la invención y sus ventajas se entienden mejor a partir de la siguiente descripción detallada 7 tomada en conjunción con los dibujos que la acompañan, los cuales:
La Figura 1 es un diagrama de bloque que describe un sistema de computadora ilustrativo para llevar a cabo una modalidad de la invención; La Figura 2 es un diagrama esquemático de alto nivel ilustrativo que describe los componentes primarios de una arquitectura de administración de gráficas incluyendo el sistema de animación para soportar la animación de elementos de despliegue gráfico; La Figura 3 es una gráfica de flujo que resume una secuencia ilustrativa de pasos repetidos llevados a cabo en un sistema modalizando a presente invención para mantener/interpretar una interfase de usuario gráfica animada; La Figura 4 es una definición de clase de animación ilustrativa para llevar a cabo una animación en una propiedad de elemento especificada; La Figura 5 resume un grupo de tipos de constructor de animación ilustrativos para animar una propiedad de elemento; La Figura 6 resume una clase de colección de animación dinámica ilustrativa para una arquitectura de animación modalizando la presente invención; y La Figura 7 resume una clase de colección de animación dinámica ilustrativa para una arquitectura de animación moralizando la presente invención.
8 DESCRIPCION DETALLADA DE LOS DIBUJOS
Se describe una arquitectura de la interfase de usuario gráfica que incluye un sistema de animación, un sistema de propiedad, y una estructura de organización de elemento de despliegue. Estos componentes, en combinación, soportan la animación en base a la propiedad de los elementos de despliegue de la interfase de usuario gráfica, y aún valores no de despliegue. La arquitectura de animación descrita incluye un sistema de animación, incluyendo clases de animación, interfases y colecciones que facilitan la creación y rastreo de instancias de animación que están conectadas a una variedad de elementos de despliegue gráficos (y no de despliegue) (por ejemplo, iconos, cajas de diálogo, barras de desplazamiento, etc.) para lograr la conducta de la animación deseada por los elementos. La animación de los elementos de despliegue se logra cambiando los valores de propiedad de los elementos de despliegue. En una modalidad de la invención, los cambios a un valor de propiedad están dirigidos por un objeto de animación específicamente definido de una clase de animación y conectado a la propiedad. En una modalidad de la invención, la animación gráfica se logra asociando una colección de animación con una operación de interpretación sobre un elemento particular dentro de un árbol de elementos. Una vez que el elemento es inicialmente obtenido, el sistema de interpretación actualiza el estado de despliegue de 9 elemento en intervalos de acuerdo con una conducta de animación definida por los componentes de los objetos de animación específicamente definidos de las clases de animación especificadas. En una modalidad de la invención, la animación se designa en múltiples niveles en un sistema de despliegue gráfico teniendo diferentes ciclos de renovación. Ciertas, animaciones fácilmente calculadas son actualizadas a un velocidad de renovación relativamente alta. Otras, animaciones más complicadas, tales como aquellas que afectan otros objetos de despliegue gráficos, se actualizan a una velocidad de renovación relativamente baja. Cuando se toma como un todo, la arquitectura de animación descrita en la presente proporciona una plataforma altamente flexible para ejecutar una variedad de nuevas conductas de animación y conecta las nuevas conductas para desplegar elementos para crear interfases de despliegue nuevas y altamente interconectadas. La Figura 1 ilustrativamente describe un ejemplo de un ambiente operativo adecuado 100 para llevar a cabo la arquitectura de animación modalizando la presente invención. El ambiente operativo 100 es solamente un ejemplo de un ambiente operativo adecuado y no pretende sugerir ninguna limitación al alcance de uso o funcionalidad de la invención. Otros sistemas de computación, ambientes y/o configuraciones bien conocidos que pueden ser adecuados par uso con la invención, incluyen, pero no se limitan a, computadoras personales, computadoras servidor, dispositivos de computación portátiles, dispositivos de computación manuales, 10 sistemas multiprocesador, sistemas en base a microprocesador, PCs en red, minicomputadoras, computadoras de marco principal, ambientes de computación distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. La invención se describe en el contexto general de un grupo de pasos y procesos llevados a cabo por instrucciones ejecutables por computadora, tales como módulos de programa, siendo ejecutados por una computadora. En general, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc. que realizan tareas particulares o implementan tipos de datos abstractos particulares. Aunque la modalidad ilustrativa se describe con referencia a procesos ejecutados localmente en un sistema de computadora individual, la invención está potencialmente incorporada dentro de los nodos de red operando en ambientes de computación distribuidos en donde las tareas son realizadas por dispositivos de procesamiento remotos que están enlazados a través de una red de comunicaciones. En un ambiente de computación distribuido, los módulos de programa están generalmente localizados en ambos medios de almacenamiento local y remoto incluyendo dispositivos de almacenamiento de memoria. Con una referencia continua a la Figura 1, un sistema ilustrativo para ¡mplementar la invención incluye un dispositivo de computación de propósito general en la forma de una computadora 110. Los componentes de la computadora 110 pueden incluir, pero no se limitan a, una unidad de procesamiento 120, una memoria del 11 sistema 130, y un conductor común del sistema 121 que acopla varios componentes del sistema incluyendo la memoria dei sistema a la unidad de procesamiento 120. El conductor común del sistema 121 puede ser cualquiera de varios tipos de estructuras de conductor común incluyendo un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local utilizando cualquiera de una variedad de estructuras de conductores comunes. A manera de ejemplo, y no limitación, dichas arquitecturas incluyen el conductor común de Arquitectura Estándar de la Industria (ISA), el conductor común de la Arquitectura del Canal Micro (MCA), el conductor común Mejorado ISA (EISA), el conductor común local de la Asociación de Estándares Electrónicos de Video (VESA), y el conductor común de Interconexión del Componente Periférico (PCI) también conocido como conductor común Mezanine. La computadora 110 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible que pueda ser accedido por la computadora 110 e incluye medios volátiles y no volátiles, medios removibies y no removibles. A manera de ejemplo, y no limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora incluyen ambos medios volátiles y no volátiles, removibles y no removibles, en cualquier método o tecnología para el almacenamiento de información, tal como instrucciones ejecutables 12 por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento por computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria no volátil, u otra tecnología de memoria, CDROM, discos versátiles digitales (DVD) u otro almacenamiento en disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético y otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede ser utilizado para almacenar la información deseada y que puede ser accedida por la computadora 110. Los medios de comunicación típicamente modalizan las instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora, u otro tipo de mecanismo de transporte e incluye cualquier medio de distribución de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijadas o cambiadas en tal forma que codifica la información en la señal. A manera de ejemplo, y no limitación, los medios de comunicación incluyen medios por cable tal como una red cableada o conexión directa-cableada, y medios inalámbricos tal como medios inalámbricos acústicos, RF, infrarrojos y otros medios inalámbricos. Las combinaciones de cualquiera de los anteriores también se pueden incluir dentro del alcance de los medios legibles por computadora. La memoria del sistema 130 incluye medios de almacenamiento por computadora en la forma de memoria volátil y/o no volátil tales como memoria de solo lectura (ROM) 131 y memoria de acceso 13 aleatorio (RAM) 132. Un sistema de entrada/salida básico 133 (BIOS), conteniendo las rutinas básicas que ayudan a la transferencia de información entre elementos dentro de la computadora 110, tales como durante el arranque, se almacenan tópicamente en ROM 131. RAM 132 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles para y/o actualmente siendo operados por la unidad de procesamiento 120. A manera de ejemplo, y no limitación, La Figura 1 ilustra el sistema operativo 134, programas de aplicación 135, otros módulos de programa 136, y datos de programa 137. La computadora 110 también puede incluir otros medios de almacenamiento removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 1 ilustra una unidad de disco duro 140 que lee de o escribe en el medio no removible, no volátil magnético, una unidad de disco duro magnética 151 que lee de o escribe en un disco magnético removible, no volátil 152, y una unidad de disco óptico 155 que lee de o escribe en una disco óptico no volátil 156, tal como un CD ROM u otro medio óptico. Otros medios de almacenamiento por computadora removibles/no removibles, volátiles/no volátiles que pueden ser utilizados en el ambiente de operación ilustrativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjetas de memoria no volátil, discos versátiles digitales, cintas de video digitales, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 141 está típicamente conectada al conductor común del sistema 121 a través 14 de la interfase de memoria no removióle tal como la interfase 140, una unidad de disco magnético 151 y una unidad de disco óptico 155 están típicamente conectados al conductor común del sistema 121 a través de la interfase de memoria removible, tal como la interfase 150. Las unidades y sus medios de almacenamiento por computadora asociados discutidos anteriormente e ilustrados en la Figura 1, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 110. En la Figura 1, por ejemplo, la unidad de disco duro 141 está ilustrada como almacenando el sistema operativo 144, los programas de aplicación 145, otros módulos de programa 146, y los datos de programa 147. Observar que estos componentes pueden ya sea ser el mismo o diferentes del sistema operativo 134, programas de aplicación 135, oros módulos de programa 136 y datos de programa 137. Al sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147 se les han dado números diferentes aquí para ¡lustrar que, al mínimo, son diferentes copias. Un usuario puede capturar comandos e información en la computadora 100 a través de los dispositivos de entrada tales como un teclado 162 y un dispositivo de apuntamiento 161, comúnmente referido como un ratón, seguibola o almohadilla sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, palanca de mandos, almohadillas de juegos, antena parabólica, escáner o 15 similar. Estos y otros dispositivos de entrada por lo general están conectados a la unidad de procesamiento 120 a través de una interfase de usuario 160 que está acoplada al conductor común del sistema, pero pueden estar conectados a través de otras interfases y estructuras de conductores comunes, tales como un puerto paralelo, un puerto de juego o conductor común serial universal (USB). Un monitor 191 u otro tipo de dispositivo de pantalla también está conectado al conductor común del sistema 121 a través de una interfase, tal como una interfase de video 190. Además del monitor, las computadoras también pueden incluir otros dispositivos de salida periféricos tales como bocinas 197 y la impresora 195, los cuales pueden conectarse a través de una interfase periférica de salida 195.
La computadora 110 puede operar en un ambiente conectado en red utilizando conexiones lógicas a una o más computadoras remotas, tales como la computadora remota 180. La computadora remota 180 puede ser una computadora persona!, un servidor, un direccionador, una PC en red, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente con relación a la computadora 110, aunque solamente un dispositivo de almacenamiento de memoria 181 ha sido ilustrado en la Figura 1. Las conexiones lógicas descritas en la Figura 1 incluyen una red de área local (LAN) 171 y una red de área amplia (WAN) 173, pero también pueden incluir otras redes. Dichos ambientes conectados en red son lugares comunes de oficinas, redes de computadora a nivel empresa, íntranets y el Internet.
16 Cuando se utiliza en un ambiente conectado en LAN, la computadora 110 está conectada a la otra LAN 171 a través de una interfase de red o adaptador 170. Cuando se utiliza en un ambiente conectado en WAN, la computadora 110 típicamente incluye un módem 172 u otros medios para establecer comunicaciones a través de la WAN 173, tai como el Internet. El módem 172, el cual puede ser interno o externo, puede estar conectado al conductor común del sistema 121 a través de una interfase de entrada de usuario 160, u otro mecanismo apropiado. En un ambiente conectado en red, los módulos de programa descritos con relación a la computadora 110, o porciones de los mismos, pueden almacenarse en el dispositivo de almacenamiento de memoria remoto. A manera de ejemplo, y no limitación, la Figura 1 ilustra programas de aplicación remotos 185 como residentes en el dispositivo de memoria 181. Se apreciará que las conexiones en red mostradas son ilustrativas y que otros medios para establecer enlaces de comunicaciones entre las computadoras pueden utilizarse. La Figura 2 es un diagrama esquemático de alto nivel que identifica componentes de una arquitectura de despliegue gráfica modalizando la presente invención e incorporando un grupo de componentes funcionales interactuando de un sistema de animación. La arquitectura de despliegue gráfica descrita en la Figura 2 se divide en un grupo de componentes funcionales para ayudar a la descripción de una modalidad ilustrativa de la presente invención. La presente invención no está limitada a la configuración de los 17 componentes en la forma descrita de manera ilustrativa. En su lugar, la funcionalidad de los componentes descrita aquí más adelante está agrupada diferentemente en modalidades alternativas de la invención. El sistema de animación incluye un número de subcomponentes que, en combinación facilitan la animación de los objetos de despliegue gráficos (así como los parámetros no visuales) con base en instrucciones de alto nivel sometidas por una aplicación 200. La aplicación 200 puede ser cualquier aplicación o control residente dentro o fuera del sistema operativo. La infraestructura de la animación descrita aquí habilita delegar, a una extensión substancial, la programación y ejecución de la animación a componentes de animación generalizados. En una modalidad de la invención, en lugar de calcular mapas de bits actualizados, la aplicación 200 somete comandos al sistema de animación especificando/definiendo ia animación para uno o más objetos de despliegue. De acuerdo con los comandos de la aplicación 200, el sistema de animación construye objetos de animación. Los objetos de animación, una vez específicamente definidos pueden ser asociados con un árbol de elementos 202. El árbol de elementos 202 se crea en respuesta a eventos generados por la aplicación 200. Ejemplos de dichos eventos incluyen el inicio de ía aplicación 200, o algún otro comando ejecutado dando como resultado la creación de una nueva vista. Después, la aplicación crea nuevos elementos, y más adelante 18 remueve los elementos, en el árbol de elementos 202. El árbol de elementos 202 comprende un grupo de elementos configurado jerárquicamente. En una modalidad de la invención, el árbol de elementos 202 estructuralmente define un documento. Cada elemento describe un objeto que, en la mayoría de los casos, corresponde a una imagen visual desplegable, por ejemplo, en una interfase de usuario gráfica. Ejemplos de elementos incluyen: botones, cuadros, celdas de cuadros, controles de lista, marcos, imágenes, y párrafos (paneles de flujo). Los elementos en el árbol de elementos 202 generalmente incluyen una o más propiedades (por ejemplo, color, altura, anchura, posición, transparencia, etc.). Los valores asignados a las propiedades de un elemento contribuyen a la definición de un estado de despliegue del elemento. En una modalidad de la invención, los objetos de animación son asignados a una o más combinaciones de elemento/propiedad. Enseguida, las instancias de los objetos de animación ejecutan la interpretación de la conducta de una animación en una propiedad del elemento de acuerdo con una línea de tiempo con la cual cada una de las instancias del objeto de animación está asociada.
"LINEAS DE TIEMPO" El cronómetro y las líneas de tiempo dirigen el sistema de animación descrito anteriormente aquí. El aspecto del cronómetro del sistema de animación descrito aquí es un derivado de la especificación W3C del Lenguaje de Integración Multimedia 19 Sincronizado (S IL 2.0). Cada objeto de animación, una vez creado y antes de la ejecución, está asociado con una línea de tiempo (por ejemplo, una definición de la secuencia de tiempo) que controla la progresión de una secuencia de cambios asociados con la conducta definida del objeto de animación. Además, la línea de tiempo antes mencionada solamente define una secuencia de cronómetro local/relativa de una conducta de animación (por ejemplo, duración de la animación, repeticiones, aceleraciones, etc.). Un objeto de animación es de esta manera incapaz de ejecutarse hasta que el objeto de animación ha sido asignado a una línea de animación "padre" (ya sea directamente o indirectamente a través de otro objeto). Por lo tanto, con el fin de ejecutar el objeto de animación, la línea de tiempo relativa está conectada con una definición de cronometraje "padre" ("línea de tiempo padre") que ata la definición de cronometraje relativa del objeto de animación a un tiempo de ejecución definido por una línea de tiempo padre. En su lugar, la línea de tiempo padre gobierna el comportamiento externo tal como, por ejemplo, cuando la animación actualmente comienza. Las líneas de tiempo mantenidas en una estructura de árbol de cronometraje jerárquica, y líneas de tiempo individuales tienen atributos que definen su comportamiento con relación a una línea de tiempo padre. Una línea de tiempo de nivel superior está definida con relación a una línea de tiempo raíz (por ejemplo, documento, página, marco, etc.). Existen un número de formas para asociar una línea de tiempo 20 padre con un objeto de animación que tiene su propia línea de tiempo interna definiendo su conducta de cronometraje de animación local. A manera de ejemplo, una línea de tiempo padre es una definición de cronometraje a la cual el objeto de animación está conectado. En un modo ilustrativo de designar una línea de tiempo, una entidad (por ejemplo, una aplicación) solicitando la creación de un objeto de animación especifica una línea de tiempo padre con la cual la línea de tiempo para el objeto de animación está conectado. En este caso, la línea de tiempo del objeto de animación define la línea de tiempo padre de creación, y el objeto de animación creado es el objeto de animación actual ejecutado (según opuesto a una copia) utilizado por una o más combinaciones de elemento/propiedad con las cuales el objeto de animación está por lo tanto asociado. En otro modo ilustrativo.de designar una línea de tiempo para un objeto de animación, una clase de objeto de animación parcialmente completo es creado que incluye su propia línea de tiempo, pero no incluye una línea de tiempo padre. Esta forma incompleta de la definición del objeto de animación (carente de una línea de tiempo padre) se denomina en la presente como una "plantilla de animación". Las plantillas de animación no son ejecutadas, en su lugar se crean copias (o clones) de plantillas de animación, y las instancias de la nueva animación cada una es asignada a una línea de tiempo padre de la animación de un elemento con el cual la nueva animación está conectada. En dichos 21 casos, la línea de tiempo padre de un objeto de animación clonado es la línea de tiempo padre especificada por un elemento al cual el objeto de animación clonado está conectado. La ausencia de una definición de cronometraje de una línea de tiempo padre específica habilita la creación de múltiples clones a partir de una plantilla de animación individual, y cada objeto de animación "clonado" adopta el cronometraje de la ejecución de animación especificada del elemento (por ejemplo, inicio, pausa, etc.) definido según a quien esté conectada. Debido a que el sistema presente soporta una designación posterior de una línea de tiempo padre, los objetos de animación creados por la colocación sobre el árbol de elementos 202 no se requieren una designación explícita de una línea de tiempo padre en el momento de la creación. Cuando dicha información de cronometraje esté completa se habilita que la animación sea ejecutada. Alternativamente, la Aplicación 200 pasa los objetos de animación directamente a una capa de integración de medios (MIL) 204 a través de una inferíase de la capa de integración de medios (MIL) 205. La MIL 204 se describe, a manera de ejemplo, en Beda y otros, Solicitud de Patente de E.U.A. No. de serie 10/184795, presentada el 27 de junio del 2002, intitulada "Sistema y Método para el Procesamiento de Gráficas de Niveles Múltiples", el contenido de la cual se incorpora expresamente aquí por referencia, incluyendo el contenido de cualesquiera referencias en la misma. En una modalidad de la invención, los objetos de animación pasados 22 directamente de una aplicación 200 a la interfase MIL 206 requieren de designación explícita de una línea de tiempo padre, o el objeto de animación no se ejecuta. La MIL 204 incluye un grupo de componentes de interpretación y control del objeto de despliegue gráfico accesados a través de la interfase MIL 206. La interfase MIL 206 se describe, a manera de ejemplo, en Beda y otros, Solicitud de Patente de E.U.A. No. de serie 10/184796, presentada el 27 de junio del 2002, intitulada "Parametrización Genérica para una Gráfica de Escena", el contenido de la cual se incorpora expresamente aquí por referencia, incluyendo el contenido de cualesquiera referencias contenidas en la misma. La interfase MIL 206 es una interfase en la que se basa la aplicación 200 o un sistema presentador 208 (descrito más adelante) una vez construida una descripción de nivel bajo de un marco de despliegue de una aplicación. La interfase MIL 206 incluye un grupo de llamadas de método, tales como: DibujarLínea(...), EmpujarTransformación (...), y MostrarTransformación(...). Las llamadas servidas por la interfase MIL 206 describen una escena/documento/interfase de usuario gráfica. La invención descrita aquí proporciona una infraestructura para definir la animación de objetos gráficos así como cualesquiera valores de parámetro que cambian a través del tiempo. De esta manera, la animación actual puede ser ejecutada a través de cualquier variedad de procesadores de interpretación de gráficas incluyendo a manera de ejemplo, el MIL 204 resumido aquí.
23 Los elementos mantenidos por el árbol de elementos 202 representan artículos de gráfica de alto nivel (por ejemplo, botones, barras de desplazamiento, etc.)- En una modalidad de la invención, dichos objetos gráficos se describen a alto nivel que no es directamente utilizado por los componentes de MIL 204. De esta forma, un presentador dentro de un sistema presentador 208 compila/traduce constituyentes del árbol de elementos 202, con los cuales el presentador está asociado, en elementos visuales (por ejemplo, líneas, rectángulos rellenos, etc.) que producen los elementos del árbol de elementos 202. El sistema presentador 208 pasa los elementos visuales al MIL 204 a través de la interfase MIL 206. Existen varias formas de llevar a cabo la funcionalidad del sistema presentador 208. Una modalidad ilustrativa del sistema presentador 208 se describe en Parikh y otros, Solicitud de Patente de E.U.A. No. de serie 10 (número de serie aún no asignado), presentada en 9 de mayo del 2003 (Correo Electrónico Express EV 329734585 E.U.A.), e intitulada "SISTEMA PARA HOSPEDAR OBJETOS DE DISEÑO GRAFICOS/PRESENTACION," el contenido de la cual se incorpora expresamente aquí por referencia, incluyendo el contenido de cualesquiera referencias contenidas en la misma. En una modalidad particular de la invención, MIL 204 incluye un árbol visual de alto nivel 210 que es capaz de procesar elementos visuales pasado por el sistema presentador 208 en ML 204 a través de la interfase MIL 206. El árbol visual de alto nivel 210 contiene un grupo estructurado de formas geométricas básicas (por ejemplo, 24 líneas, rectángulos, imágenes, etc.). El grupo estructurado de formas geométricas básicas que describe un marco de imagen individual para una aplicación. El árbol visual de alto nivel 210 soporta una clase de animaciones denominadas como "animaciones independientes". Las animaciones independientes, descritas adicionalmente más adelante, no dependen de la función de diseño del sistema presentador 208 para lograr una animación. Ün árbol visual de nivel bajo 212 es una versión colapsada potencialmente de un árbol visual de alto nivel 210. El árbol visual de nivel bajo 212 está configurado para fácilmente interpretar y ejecutar animaciones independientes pasadas al árboi visual de bajo nivel 212 a través del árbol visual de alto nivel 210. El árbol visual de bajo nivel 212 potencialmente ejecuta múltiples marcos entre actualizaciones a su forma de estructura, por ejemplo, el árbol visual de alto nivel 210. El árbol visual de bajo nivel 2.12 está configurado para interconectar las unidades de salida. Una unidad de comunicaciones de red de máquina remota 214 es un objeto correspondiente a una máquina a la cual la aplicación 200 interpreta la salida. La máquina es potencialmente una máquina diferente de la máquina a partir de la cual la aplicación 200 se ejecuta. En dicho caso, la aplicación 200 se comunica con su salida visual a través de una conexión en red a la salida de despliegue en una máquina remota para un usuario de la aplicación 200. Alternativamente, el árbol visual de bajo nivel 212 interpreta ia 25 salida a una unidad de despliegue gráfica 216. La unidad de despliegue gráfico 216 representa la comunicación de los datos de despliegue de marco al hardware en la máquina local que es responsable de dibujar el marco para el dispositivo de despliegue de salida (por ejemplo, una pantalla de despliegue visual) para una máquina actualmente operando la aplicación 200 para un usuario local. Cuando los objetos que están siendo animados, un artículo en cola de espera interpretador 213 asegura que las animaciones se queden en sincronización una con la otra. El artículo de cola de espera de interpretación 213 se crea cada vez que un nuevo marco necesita ser interpretado, por ejemplo, cuando los cambios son hechos al árbol de elementos 202 o cuando los objetos de animación causan que los valores cambien. El artículo de cola de espera de interpretación 213 deja de existir tan pronto como se procesa completamente. El artículo de cola de espera de interpretación 213, al llevar a cabo su papel de sincronización, organiza los siguientes procesos: marca un árbol de cronometraje 228 (descrito más adelante) y por de ahí invalida propiedades animadas dependientemente; invoca el sistema presentador 208 para finalizar un diseño y actualización del árbol visual de alto nivel 210 después de marcar que el procedimiento está completo; y después de que el sistema presentador 208 finaliza el diseño, solicita al árbol visual 210 compilar y propagar los cambios en forma descendente al árbol visual de nivel bajo 212. Los pasos para llevar a cabo las funciones 26 del artículo de cola de espera de interpretación 213 se describen aquí más adelante con referencia a la Figura 3. Habiendo descrito ciertos bloques de función ilustrativos que mantienen y generan un marco de datos de acuerdo con los valores de animación provistos, ahora se dirige la atención a las fuentes de propiedades de animación dentro del árbol de elementos 202 y sus cambios manejados en el tiempo. Un sistema de propiedades 220 es responsable de mantener valores para las propiedades. El sistema de propiedades 220 almacena y calcula los valores sobre elementos por lo que estos pueden ser utilizados por el sistema presentador 208 para crear el árbol visual de alto nivel 210. El sistema de propiedades 220 soporta un modelo de sucesión para valores de propiedades dentro de un valor del elemento para una propiedad particular se sucede a través de un grupo de hijos del elemento. Como se describe de manera ilustrativa en la Figura 2, el sistema de propiedades 220 recibe valores de entrada de muchas fuentes. La aplicación 200 fija valores base para propiedades dinámicas (y también recupera sus valores actuales) mantenidos por el sistema de propiedades 220. El árbol de elementos 202 solicita valores, para las propiedades de los elementos dentro del árbol de elementos 202, del sistema de propiedades 220 para dárselos al sistema presentador 208. El sistema presentador 208, a su vez, utiliza los valores de propiedades para generar la entrada para las llamadas a la interfase MIL 206. Durante el curso del procesamiento de ios elementos del árbol de elementos 202, el sistema presentador 27 208 solicita los valores base de propiedad y otra información asociada con los elementos del sistema de propiedades 220 para organizar y asignar valores a los elementos que forman una vista particular con la cual el sistema presentador 208 está asociado. El sistema de propiedades 220 prioriza valores de diferentes fuentes. Por ejemplo, el sistema de propiedades 220 habilitar un valor de propiedad localmente especificado para tomar una preferencia más alta sobre un valor especificado en una hoja de propiedad o un valor de sucesión de un padre. El sistema de propiedades 220 incluye la lógica para clasificar valores provistos por varias fuentes y devuelve el valor de más alta prioridad a cualquier receptor del valor. El sistema de propiedades 220 toma en consideración cualesquiera animaciones activas a una propiedad cuando se calcula el valor actual para la propiedad. Si un usuario solicita un valor de una fuente particular, entonces el sistema de propiedades 220 maneja dicha solicitud. Los objetos de animación, que hacen cambios a los valores de propiedad mantenidos por el sistema de propiedades 220, son específicamente definidos de las clases de animaciones 222 que definen y ejecutan formas para modificar un calor de propiedad en base a la línea de tiempo asociada con las instancias del objeto de animación (o padre del mismo). Una instancia de clase de objeto de animación se crea a través de la aplicación 200. La aplicación 200 también fija valores en los objetos de animación específicamente definidos de las clases de animación 222. La aplicación 200 también 28 es capaz de solicitar un valor actual sobre un objeto de clase de animación particular. Un objeto de clase de animación se remueve cuando no existe una referencia para el objeto de clase de animación. Las clases de animación 222 cada una tiene propiedades especificabas tales como De, A, y Duración, que describen un comportamiento de animación particular. Las clases de animación son escritas de tai manera que existen diferentes clases para diferentes comportamientos de animaciones y sus correspondientes tipos de dato. Ejemplos de clases de animación incluyen: AnimaciónFlotada - proporcionando un valor de punto flotante, AnimaciónUnidadCaja - proporciona dimensiones para una caja presentadora, AnimaciónPunto - proporciona la posición izquierda superior de un rectángulo, AnimaciónCoior - proporciona un valor de color cambiante en el tiempo; y AnimaciónBool - proporciona un valor Buliano. Las instancias de las clases de animación 220 son inmutables. De esta manera, una vez que son creadas, sus valores de propiedad nunca se pueden cambiar. Esto quiere decir que una escritor de aplicación puede reutilizar una instancia de animación en múltiples lugares sin preocuparse de que su comportamiento definido sea cambiado. Las clases de colección de animación 224 organizan clases de 29 animación 222. Una clase de colección de animación 224 se crea a través de la aplicación 200. La aplicación 200 especifica una o más clases de animación 222 contenidas dentro de una clase de colección de animaciones. La aplicación 200 entonces establece una clase de colección de animaciones que animará una propiedad dinámica en el sistema de propiedades 220. La aplicación 200 también puede asociar una instancia de la clase de colección de animaciones con una propiedad dinámica asociada con cualquier elemento particular en el árbol de elementos 202. La aplicación 200 es capaz de enumerar las clases de animación contenidas en una clase de colección de animaciones particular de ias clases de colecciones de animaciones 224, así como solicitar un valor de animación compuesto de la clase de colección de animaciones. Una instancia de la clase de colección de animaciones es una colección de basura cuando no existen referencias para la instancia de la clase de colección de animaciones particular. Una colección de animaciones es una colección de objetos de animaciones que procesan un mismo tipo de datos. Una clase de colección de animaciones está pendiente de la prioridad relativa de las clases de animaciones en su lista y de cómo componer las clases de animaciones juntas de acuerdo a un valor base aprobado en la instancia de la clase de colección de animaciones, y la clase de animación devuelve un valor actual. En una modalidad de la invención, las clases de animación están encadenadas juntas en las clases de colección de animaciones. La entrada de ia colección de 30 animaciones recibe un valor de propiedad base. La primera escena (objeto animado) interpreta un valor de propiedad modificado del mismo tipo como la entrada a una siguiente escena potencial (en el caso de múltiples objetos de animación dentro de un objeto de clase de colección de animaciones). El procesamiento de conductos del valor base a través del objeto de animación de conducto de la colección de animaciones interpreta un valor actual para la propiedad animada. El resultado de dicho conducto es la creación de una función animada compuesta ejecutada de manera serial. Una clase de colección de animaciones existe para cada tipo de valor de propiedad para la cual la animación está soportada (por ejemplo, Colección Animación Flotada,
ColecciónAnimaciónUnitariaCaja, ColecciónAnimaciónPunto, ColecciónAnimaciónColor, y ColecciónAnimaciónBool). Esta lista de tipos de clases de colección de animaciones es meramente ilustrativa. Aquellos con experiencia en la técnica fácilmente apreciarán la amplia extensión potencial de diferentes tipos de clases de colecciones de animaciones. Como con las clases de animaciones 220, las instancias de una clase de colección de animaciones de las clases de colección de animaciones 224 son inmutables. Una clase de colección de animaciones dinámica 226 se construye a partir de la funcionalidad de las clases de colección de animaciones 224. Una instancia de la clase de colección de animaciones dinámica 226 se mantiene sobre una referencia a la 31 instancia de la clase de colección de animaciones de las clases de colección de animaciones 224. Además, la instancia del objeto de colección de animaciones dinámico se mantiene obre una referencia a un elemento dentro del árbol de elementos 222 y a una propiedad en el elemento que la instancia de la colección de animaciones dinámica está animando. Un escritor de aplicación, en una modalidad de la invención, no puede crear o accesar la instancia de la colección de animaciones dinámica. En su lugar, el sistema de propiedades 220 crea una instancia de la colección de animaciones dinámica una vez que recibe una solicitud de la aplicación 220. Una instancia del objeto de la colección de animaciones dinámica se crea a través del sistema de propiedades 220 cuando una instancia de la clase de colección de animaciones está asociada con una propiedad dinámica. La propiedad dinámica mantiene y/o calcula un valor asociado con una propiedad de definición individual para un elemento en el árbol de elementos 202, tal como la anchura, altura, parte superior, izquierda o cualquier otra propiedad de definición de cualquiera de los elementos. La colección de animaciones dinámica también mantiene una colección de animaciones específicamente definida de una clase de animación de las clases de la colección de animaciones 224 y de esta manera asocia la clase de colección de animaciones con una combinación de elemento/propiedad en el árbol de elementos 202. Si el sistema de propiedades 220 es interrogado para un valor actual de una propiedad dinámica, el sistema de propiedades 220 determina si la 32 propiedad dinámica tiene un objeto de colección de animaciones dinámica asociado específicamente definido de la clase de colección de animaciones dinámica 226, y el sistema de propiedades 220 procesa el valor base a través de cualesquiera ciases de animaciones activas actualmente en la colección de animaciones dinámica para proporcionar un valor animado actual. En una modalidad de la invención, cuando el sistema de propiedades 220 solicita un objeto de la colección de animaciones dinámica particular de un valor actual, la colección de animaciones dinámica especificada pasa la solicitud a un objeto de la colección de animaciones apropiado específicamente definido de una de las clases de la colección de animaciones 224. El objeto de la colección de animaciones, a su vez, circula a través de su grupo de objetos de animación específicamente definidos de las clases de animación 222 para interpretar sus valores actuales para proporcionar las bases para la interpretación de un valor final a través del objeto de la colección de animaciones a su colección de animaciones dinámica que llama. Algunas animaciones creadas mediante la aplicación 200 pueden no especificar una línea de tiempo padre y esperar que el sistema de animación seleccione la línea de tiempo padre apropiada para un animación solicitada. Durante el proceso de asociación, el sistema de propiedades 220 inicialmente determina si cada clase de animación dentro de la clase de la colección de animaciones tiene una línea de tiempo padre. Si ninguna clase de animación no está 33 asociada con una línea de tiempo padre, entonces una nueva clase de animación se crea que está asociada con una línea de tiempo padre de un elemento de despliegue con el cual la colección de animaciones dinámica está asociada. Además, se observa que si la línea de tiempo padre asociada con un elemento de despliegue cambia, entonces la colección de animaciones dinámica es reconstruida para reflejar el cambio en la línea de tiempo padre. Para una función apropiada, todas las clases de animación dentro de una clase de la colección de animaciones deben eventualmente especificar una línea de tiempo padre que gobierne el cronometraje de su ejecución. Si todas las clases de animación en la clase de la colección de animaciones especificada están asociadas con las líneas de tiempo padre, entonces la colección de animaciones utiliza la clase de la colección de animaciones especificada. De otra manera, en vista de la inmutabilidad de las clases de animación y las clases de la colección de animaciones, el sistema de propiedades 220 crea una nueva clase de colección de animaciones, y la nueva clase de colección de animaciones incluye nuevas clases de animación, cada una teniendo una línea de tiempo padre asignada. Una vez que el sistema de propiedades 220 ha creado ia nueva clase de la colección de animaciones con cada objeto de animación que tiene una línea de tiempo padre, el sistema de propiedades 220 da a la clase de colección de animaciones a la colección de animaciones dinámica asociada con el par de elemento/propiedades dinámicas. Si aún no hay una colección de 34 animaciones dinámica asociada con este par, el sistema de propiedades creará una nueva 226. Como se observa varias veces anteriormente, el cronometraje dirige las conductas de las animaciones asociadas con los objetos de animación conectados a las propiedades de los elementos en el árbol de elementos 202. Como se utiliza aquí, una línea de tiempo es una instancia de una entidad de cronometraje que mantiene un estado de tiempo de operación de acuerdo con un grupo de atributos de cronometraje. El árbol de cronometraje 228, en una modalidad de la invención, es una estructura de datos que contiene nodos de cronometraje (líneas de tiempo) configuradas en una forma jerárquica. La relación entre los nodos de cronometraje está definida pro las reglas se sucesión y por los atributos de cronometraje específicos de nodo de cada línea de tiempo correspondiente a un nodo de cronometraje en el árbol de cronometraje 228. Las reglas de sucesión incluye la definición de las compensaciones de los tiempos de inicio de los hijos relevantes al tiempo de inicio del padre. Además, las relaciones de sucesión especifican las relaciones de control. Por ejemplo, su un padre reinicia, repite, pausa, resume, busca o termina, todos los hijos harán lo mismo (y sus hijos, etc.). Dichas relaciones habilitan el inicio de un grupo completo de línea de tiempo hijas a través de una acción en una línea de tiempo padre individual. El árbol de cronometraje 228 controla: (1) las líneas de tiempo que potencialmente dirigen los cambios a valores de las instancias de la clase de animación, y (2) las líneas de tiempo de 35 contenedor que contienen otras líneas de tiempo. Los valores progresivos derivados de las líneas de tiempo se utilizan para calcular cualquier valor actual del objeto de animación dado. El árbol de cronometraje 228 se crea en el momento del arranque de la aplicación 200. El árbol de cronometraje 228 lleva a cabo un papel de notificación de evento de cronometraje para la infraestructura de la animación descrita en la Figura 2. Inicialmente, cuando una colección de animaciones dinámica es específicamente definida, se emite una solicitud a través de la colección de animaciones al árbol de cronometraje 228 para emitir una notificación siempre que la instancia de la animación en su objeto de clase de la colección de animaciones haya progresado. Cuando la colección de animaciones dinámica recibe una notificación del árbol de cronometraje 228 de que una sus animaciones ha progresado, la instancia de la colección de animaciones dinámica notifica al sistema de propiedades 220 que la propiedad dinámica en el elemento de despliegue, con el cual está asociada, ahora es inválido. La invalidación de una propiedad del elemento de despliegue a su vez inicia un proceso referido aquí como animación dependiente. Durante el procesamiento de la animación dependiente, el sistema presentador 208 es solicitado para construir un árbol visual de alto nivel 210 de acuerdo con el cambio de valor asociado con la animación. El árbol de cronometraje 228 también realiza un papel de medición de progreso y reporte para instancias de las clases de 36 animación 222. En respuesta a la invalidación, las instancias de las' clases de animación 222 son solicitadas para reportar sus valores actuales. Las clases de animación 222 investigan el árbol de cronometraje 228 para un valor de progreso de la línea de tiempo con la cual cada una está asociada. Las clases de animación 222 por lo tanto calculan sus valores actuales en base al valor de progreso suministrado por el árbol de cronometraje, y proporcionan los valores actuales a cualquier entidad que lo solicite. El artículo de cola de espera de interpretación 213 también ¡nteractúa con el árbol de cronometraje 228. El artículo de cola de espera de interpretación es un artículo de cola de espera en la cola de espera del sistema operativo que, cuando se ejecuta, causa que la aplicación/página/escena generada por la aplicación 200 sea compilada en forma descendente hacia el árbol visual de nivel bajo 212 y eventualmente sea interpretada en el dispositivo de pantalla. La primera cosa que el artículo de cola de espera de interpretación realiza, una vez que es invocado, es "marcar" el árbol de cronometraje 228. Este tiene el efecto de tener un árbol de cronometraje que actualiza sus líneas de tiempo a un tiempo actual. Como resultado, el árbol de cronometraje 228 envía notificaciones las cuales pueden causar muchas invalidaciones en el sistema de propiedades 220. Los valores de progreso de las animaciones independientes son actualizados así como cuando la marca de ejecuta. Si, durante el procesamiento del artículo de cola de espera de interpretación 213, el árbol de cronometraje 228 se modifica, el 37 artículo de cola de espera de interpretación da la vuelta y "re-marca" al mismo tiempo hasta que el árbol de cronometraje 228 se estabiliza.
Animaciones Independientes/Dependientes Ambas animaciones dependientes e independientes ha sido mencionadas anteriormente. En una modalidad de la invención, el sistema de animación descrito en la Figura 2 soporta por lo menos estos dos tipos de instancias de animaciones, cuyas clasificaciones se basan en sus relaciones con otras instancias de animación. Las instancias de animación independiente no impactan el diseño de una vista y pueden por lo tanto ser renovadas a una velocidad más alta. Un ejemplo de una animación independiente es una animación de color. El color de un objeto no modifica su anchura o altura, y por lo tanto la animación de cambio de color no afecta cómo el elemento animado de cambio de color es diseñado (por ejemplo, tamaño o posición) en la página. Las animaciones dependientes por lo general cambian un diseño de un elemento con el cual las animaciones dependientes están asociadas, y por lo tanto las animaciones dependientes requieren de un recálculo de un diseño de la ¡nterfase de usuario gráfica. Las instancias de la animación dependiente se almacenan dentro de la estructura del árbol de elementos 202 para asegurar un procesamiento adecuado de todas las propiedades del elemento desplegado afectado. Debido a los requerimientos de cálculos más 38 grandes y acceso a memoria significativamente potenciales, las animaciones dependientes se calculan a una velocidad de renovación potencialmente más baja a través de MIL 204.
Tres Niveles/Escenarios para las Clases de "Animación" En una modalidad de la presente invención, el comportamiento de la animación aplicado a las propiedades del elemento de despliegue se implementa a través de tres niveles de clases, y sus instancias correspondientes. Con una referencia continua a la Figura 2, las clases de animación 222 comprenden un grupo de clases de objeto definiendo objetos capaces de computar operaciones de animación particulares definidas en un valor de propiedad (típicamente un comportamiento de animación individual). En el siguiente nivel, las clases de la colección de animaciones 224 definen un grupo de objetos que agrupan/asignan una o más clases de animación individuales de las clases de animaciones 222 e una definición de clase de animación individual, por lo tanto soportando la creación de comportamientos de animaciones compuestos en una propiedad de elemento individual. En el siguiente nivel, la colección de animaciones dinámica 226 define un tipo de objeto para llevar a cabo/ejecutar un comportamiento de animación, definido por una de las clases de la colección de animaciones 226, en una propiedad de un elemento dentro del árbol de elementos 202. Dicha funcionalidad se facilita mediante las instancias de una colección de animaciones dinámica 39 226 controlando: una referencia a una instancia de la clase de la colección de animaciones de las clases de la colección de animaciones 224; y una referencia a un elemento dentro del árbol de elementos 202 y a una propiedad en el elemento que la instancia de la colección de animaciones dinámica está animando. Se crea una colección de animaciones dinámica mediante el sistema de propiedades 220 cuando una instancia de la clase de la colección de animaciones está asociada con una propiedad dinámica. La propiedad dinámica controla y/o calcula un valor asociado con una propiedad de definición individual para un elemento en el árbol de elementos 202, tal como anchura, altura, parte superior, izquierda o cualquier otra propiedad de definición de cualquier clase de elemento. La colección de animaciones dinámica también controla una referencia a un objeto de la clase de la colección de animaciones específicamente definida de una de las clases de la colección de animaciones 224 y de esta forma asocia el objeto de la clase de la colección de animaciones con una combinación de elemento/propiedad particular en el árbol de elementos 202. Cambiando ahora a la Figura 3, se resumen un grupo de pasos para una secuencia de interpretación ilustrativa realizada por el artículo de cola de espera de interpretación 213 de la Figura 2. Como se explicó anteriormente, el artículo de cola de espera de interpretación 213, cuando se ejecuta, origina que la aplicación/página/escena generada por la aplicación 200 sea compilada de manera descendente hacia el árbol visual de nivel bajo 40 212 para interpretarse a través de un dispositivo de pantalla. Se observa que esta secuencia de pasos es ilustrativa, y la operación del artículo de cola de espera de interpretación se modifica en otras modalidades de la invención. Inicialmente, durante el paso 300, el artículo de cola de espera de interpretación 213 origina una marcación en el árbol de cronometraje 228. Al marcar el árbol de cronometraje 228 tiene el efecto de tener el árbol de cronometraje 228 actualizando sus líneas de tiempo al tiempo actual. Como un resultado, el árbol de cronometraje 228 envía notificaciones que pueden causar muchas invalidaciones (por ejemplo, invalidar propiedades animadas dependientemente) en el sistema de propiedades 220. En una modalidad de la invención, un evento "Cambiado" surge a través de los objetos de animación que han sido afectados por el tiempo actualizado. Estos eventos se recolectan y procesan mediante una instancia del objeto de la Colección de Animaciones Dinámica asociada del objeto de animación. El objeto de la Colección de Animaciones Dinámica, a su vez, invalida su propiedad dinámica en un elemento. Los valores de progreso de las animaciones independientes se actualizan así como cuando se ejecuta' la marcación en el paso 300. Después de marcar el árbol de cronometraje 228, durante el paso 310 se realiza un proceso de diseño mediante el artículo de la cola de espera de interpretación 213. Durante el proceso de diseño 310 el árbol visual de alto nivel 210 es actualizado de acuerdo con 41 cualesquiera cambios al árbol de elementos 202 desde la última ejecución de un artículo de la cola de espera de interpretación. En una modalidad de la invención, los presentadores que son responsables del diseño de los elementos gráficos en una vista que tiene valores de propiedad cambiados (como un resultado de la marcación del tiempo) son invalidados, significando que se debe recalcular su diseño y crear un nuevo árbol visual de alto nivel incorporando los cambios a las propiedades dinámicas afectadas. También durante el paso 310, el sistema de despliegue recibe y despacha solicitudes de las aplicaciones, el interpretador del sistema operativo, etc. que potencialmente afecta el diseño. Ejemplos de dichas solicitudes incluyen pruebas de hits, llamadas de regreso a los programas del usuario, y acciones de la aplicación general que afectan el despliegue gráfico. Durante el proceso de diseño 310, la estructura del árbol de cronometraje 228 puede potencialmente cambiar (por ejemplo, un nuevo nodo de cronometraje fue agregado, un nodo existente fue removido, una nueva referencia fue establecida a un nodo de cronometraje existente, etc.). Si, en el paso 310 se determina que la estructura del árbol de cronometraje ha cambiado, el control pasa de regreso al paso 300 y la marca del cronometraje es re-ejecutada en la estructura del árbol de cronometraje 228 en su nueva forma. Si el árbol de cronometraje 228 no ha cambiado en estructura, entonces el control pasa del paso 320 a un paso de Interpretación 330, en donde el árbol visual de alto nivel 210 compila y propaga 42 datos de despliegue nuevos/actualizados al árbol visual de nivel bajo 212. El árbol visual de nivel bajo 212, con base en los cambios recibidos, interpreta la salida recalculada a las unidades 262 y/o 264. Después, durante el paso 340, las líneas de tiempo asociadas con la colección de animaciones dinámica es interrogada para determinar un siguiente tiempo que necesita ser marcado (evento más cercano). Si no se necesitan más marcaciones, entonces el control pasa a Finalizar 360. Si se necesitan marcaciones adicionales del árbol, entonces el control pasa al paso 350, en donde una nueva instancia del artículo de cola de espera de interpretación 213 se crea para la instancia de la colección de animaciones dinámica de las propiedades del elemento. El nuevo artículo de cola de espera de interpretación especifica en tiempo en el cual debe ser ejecutado. Si el tiempo de ejecución especificado es en algún momento que no ha sido alcanzado, entonces el artículo de cola de espera de Interpretación es inicialmente colocado en una lista inactiva. Cuando se alcanza el tiempo, el artículo de cola de espera de interpretación se coloca dentro de una cola de espera activa para la ejecución de acuerdo con los pasos establecidos en la Figura 3. Después de crear el nuevo artículo de cola de espera de interpretación, entonces el control pasa a Finalizar 360. El comportamiento de la animación para una propiedad de elemento, se lleva a cabo a través de uno o más objetos específicamente definidos de las clases de animación 222. Cada 43 objeto de animación incluye una función de animación que toma un primer paso de entradas (incluyendo por lo menos un valor de línea de tiempo actual) y produce una salida de un tipo de interpretación de un elemento de despliegue animado. Varias de las clases de animación 222 (por ejemplo, AnimacionPunto) convierten un vaior de progreso de la línea de tiempo e un tipo de dato apropiado (por ejemplo, un punto) para una propiedad del elemento. Cambiando ahora a la Figura 4, se resume una estructura de clase de animación de alto nivel. Las varias clases de animaciones siguen un patrón común e implementan un grupo de interfases similar. Las diferencias surgen principalmente en los tipos de datos de las propiedades, y en los cálculos realizados (en vista del tipo de dato particular tal como: punto de flotamiento, Booleano, punto, etc.) para asignar un valor actual a un valor de entrada en vista de un valor de progreso calculado. Dichas modificaciones son bien conocidas dentro de la experiencia de aquellos con experiencia en la técnica en vista de los ejemplos y descripción de la funcionalidad de las clases de animación contenidas aquí. En una modalidad de la invención, la estructura de las clases de animación incluye un grupo de Propiedades de Animación 400. Una propiedad De designa un valor de animación de inicio. Una propiedad A especifica un valor de animación de terminación. Una propiedad de Por especifica un valor de cambio (delta) al final de la animación. En lugar de especificar un valor final explícito en la propiedad A, la propiedad Por especifica una diferencia entre un 44 valor de animación de terminación y un valor de animación inicial. Una clase de animación puede comprender múltiples segmentos utilizando diferentes parámetros de cronometraje dentro de cada segmento. Una propiedad de ValoresClave especifica una lista de valores para una animación. Una propiedad de método de interpolación especifica un método para la interpolación entre dos valores clave especificados en la propiedad ValoresClave. Ejemplos del método de interpolación incluyen: discreta, lineal, ritmo, y tira. Una propiedad de TiemposClave designa una lista de valores de tiempo utilizada para controlar el paseo de la animación. Esta lista contiene el mismo número de elementos que la lista de ValoresClave. La lista está ordenada en valores de tiempo incrementantes, y el primer valor en esta lista es 0 y el último 1 (a menos que el Método de Interpolación sea fijado en Discreto, en cuyo caso el último valor puede ser cualquiera menor que o igual a 1). Una propiedad de TirasClave especifica un grupo de puntos de control Bezier asociados con una lista de TiemposClave. Los puntos de control Bezier definen una función cúbica que controla el ritmo del intervalo de la animación. Esta lista contiene un elemento menos que la lista de TiemposClave. Esta lista solamente se utiliza si el atributo del Métodolnterpolación está fijado a Tira. Las propiedades de animación dentro de una estructura de clase de animación incluyen ciertos atributos Búllanos. Una propiedad de EstáSobreescribiendoValorBase se fija como Verdadero si la línea de tiempo del objeto de animación está activo o en un 45 período de relleno. Además, una propiedad EstáAcumulando habilita una secuencia de animación repetida para tener un efecto acumulativo sobre una propiedad del elemento. Cuando la propiedad EstáAcumulando se fija como Verdadera, en lugar de repetir la misma trayectoria en cada repetición de una secuencia de animación repetida, una animación acumula el efecto de cada repetición, en esencia componiendo con si misma y construyendo sobre un cambio inducido de la animación previa a una propiedad de elemento. Una propiedad de UsaValorBase regresa Verdadero si el valor de retorno de ObtenerValor para el objeto de animación (descrito más adelante en asociación con un grupo de métodos 420) depende del valor base (provisto al objeto de animación). Si la propiedad UsaValorBase regresa Falso, entonces el objeto de animación ignora el valor base por completo. Si el objeto de animación está en una lista, la propiedad UsaValorBase permite una optimización en donde solamente un subgrupo de los objetos de animación necesita ser evaluados en algunos casos. La estructura de la clase de animación también incluye un grupo de propiedades de cronometraje 410. Una propiedad de TiempoActual proporciona un tiempo actual local a la línea de tiempo del objeto de animación. Una propiedad de LíneaTiempoPadre designa una línea de tiempo que es el cronometraje padre de una línea de tiempo del objeto de animación. La propiedad LíneaTiempoPadre puede referenciar cualquier otra línea de tiempo, o una de los dos valores de referencia especiales: Línea de Tiempo.
46 PadreVisual o Línea de Tiempo. LíneaTiempoRaíz. Si la propiedad LíneaTiempoPadre se establece a LineaTiempo. PadreVisual entonces la línea de tiempo es auto-padre en uso a la línea de tiempo asociada con el elemento visual en el cual se utiliza. Si el elemento visual no tiene una LíneaTiempoPorOmisión, entonces el elemento visual padre es inspeccionado, repetitivamente. Si la propiedad LíneaTiempoPadre se establece a LineaTiempo. LíneaTiempoRaíz entonces esta línea de tiempo es auto-padre en uso a la "raíz" del árbol de cronometraje 228. El grupo de propiedades de cronometraje también incluye una propiedad de Iniciar para designar un tiempo en el cual la línea de tiempo para cuando debe iniciar el objeto de animación particular. Por defecto el valor de tiempo inicial es relativo al tiempo de inicio de la línea de tiempo padre, pero una compensación es también potencialmente especificada proporcionando un tiempo relativo a algún otro tiempo de inicio o de terminación de la línea de tiempo. En el último caso, la otra línea de tiempo debe ser emparentada a la misma línea de tiempo que la línea de tiempo para este objeto de animación particular. Una propiedad de Duración en el objeto de animación designa una duración de un período individual desde el inicio hasta el final. Una propiedad de Progreso designa el valor de progreso actual de la línea de tiempo. Si el EstáSobrescribiendoValorBase (descrita aquí más adelante) es falsa, entonces la propiedad de Progreso devuelve 0. En todos los casos, el valor de retorno de la propiedad Progreso siempre es un valor 47 entre O y 1 , inclusive. En una modalidad de la invención, se soporta la repetición de una animación. Una propiedad de RepetirCuenta especifica un número de veces que un período de inicio a fin debe ser repetido durante la vida de este objeto de animación. El valor de la propiedad de RepetirCuenta es potencialmente un valor fraccional. Un valor especial, flotar. Positivolnfinito, indica que la línea de tiempo se debe repetir continuamente. Una propiedad de RepetirActual especifica una repetición actual de la línea de tiempo, si se repite. La primera repetición es la repetición 1. Si la propiedad de animación EstáSobrescribiendoValorBase es falsa la propiedad RepeticiónActual regresa 0. Una propiedad de RepetirDuración especifica la longitud de tiempo para la cual un período de inicio a fin debe ser repetido. Esto potencialmente da como resultado una ejecución fraccional (cuenta repetida). El valor de la propiedad RepetirDuración de Tiempo. Indefinido indica que la línea de tiempo debe repetirse para siempre. Si la propiedad EstáSobrescribiendoValorBase es falsa esta propiedad devuelve Tiempo. NoEspecificado. Si los valores están especificados para ambas propiedades RepetirCuenta y RepetirDuración, entonces la duración activa total es la mínima de las dos propiedades. Las propiedades de cronometraje para las clases de animación también incluyen una propiedad de aceleración que designa un valor, entre 0 y 1, representando una fracción de la duración individual 48 transcurrida en la fase de aceleración del tiempo. Una propiedad de desaceleración designa un valor, entre 0 y 1, representando una fracción de la duración simple transcurrida en el tiempo de la fase de desaceleración. Ya que la animación no puede simultáneamente acelerar y desacelerar, la suma de los valores de la propiedad de aceleración y desaceleración no exceden 1 (la duración simple). Una propiedad de Autoreversa designa si la animación está por progresar desde el inicio al final y después de regreso. Si la propiedad de Autoreversa tiene un valor de "Verdadero", entonces la línea de tiempo progresa desde el inicio hasta el final y después inmediatamente progresa de regreso desde el fin hasta el inicio. La línea de tiempo estará activa durante el doble de la cantidad del tiempo especificado por la propiedad Duración del objeto de animación. Una propiedad de Finalizar mantiene un valor especificando un máximo de tiempo final para la línea de tiempo para el objeto de animación. Si el valor de la propiedad Finalizar es menor que la suma de los valores de la propiedad Inicio y Duración, entonces el período de activación es acortado a través del valor de la propiedad Finalizar. Además, todos los inicios de las animaciones especificadas (programadas o inactivas) que pasan el tiempo especificado por el atributo Finalizar son ignoradas. Un valor de propiedad FinalizarSincronización define una duración implícita de una línea de tiempo. La duración implícita especificada por la propiedad FinalizarSincronización se utiliza si la 49 propiedad de Duración no está establecida como explícita. La duración implícita de una línea de tiempo puede ser definida por el objeto cronometrado que controla o a través de otras líneas de tiempo que pueden estar emparentadas con él. Una propiedad de Llenar especifica un comportamiento de la línea de tiempo del objeto de animación después de que pasa el tiempo de Finalización. Por defecto, la línea de tiempo está solamente "activa" de inicio a fin, pero si la propiedad de Llenar está fijada en "Congelar", entonces la línea de tiempo permanece transcurrido el tiempo de finalización. En ese caso, el valor de progreso para el objeto de animación después de que el tiempo de finalización es igual a lo que fuera en el tiempo de finalización. Las configuraciones para el valor de la propiedad Llenar son Remover (el defecto global), Congelar, y Mantener. Una propiedad de LlenarPorDefecto designa un valor por defecto para la propiedad Llenar. Si el valor de la propiedad Llenar no está especificado, entonces el valor para la propiedad LlenarPorDefecto especifica el comportamiento de Llenar. Además, este defecto es sucedido a través de las líneas de tiempo emparentadas a esta, a menos que tengan su propio atributo de LlenarPorDefecto establecido. Los valores posibles para la propiedad LlenarPorDefecto son los mismos que para el atributo Llenar. Una propiedad de Reiniciar designa un comportamiento de la línea de tiempo del objeto de animación cuando se alcanza un segundo tiempo de inicio (o posterior). Por defecto, una tiempo de 50 inicio interrumpe cualquier período activo y regresa al tiempo t=0 para la línea de tiempo. Sin embargo, si la propiedad de Reinicio está fijada a CuandoNoActivo, entonces un tiempo de inicio que debería interrumpir un período activo es ignorado. Los valores posibles para la propiedad Reiniciar son: Siempre, CuandoNoActivo, y Nunca. Una propiedad ReiniciarPorDefecto designa un valor por defecto para la propiedad de Reiniciar. Una propiedad de Velocidad designa una velocidad relativa a la que el tiempo debe pasar para la línea de tiempo para el objeto de animación (comparado con su línea de tiempo padre). Por ejemplo, un valor A de 1 significa velocidad normal, en donde un valor de 2 significa que el tiempo transcurre dos veces más rápido (y, por lo tanto, la duración percibida finaliza siendo solamente la mitad que la especificada por el atributo Duración). Este valor puede ser negativo, en cuyo caso el tiempo fluye en reversa en esta línea de tiempo, desde los tiempos de finalización a inicio, como si la línea de tiempo padre estuviera en reversa. Un grupo de propiedades Bulianas están incluidas para identificar el estado de la animación del objeto de animación. Una propiedad de EstáProgresandoHaciaAdelante identifica si el progreso en esta línea de tiempo se mueve de 0 a 1 en relación con el tiempo del reloj de pared. Esta propiedad de EstáProgresandoHaciaAdelante toma en cuenta el efecto de estar anidada en líneas de tiempo de potencialmente en reversa. Si el valor de EstáProgresandoHaciaAdelante es falso, entonces 51 EstáProgresandoHaciaAdelante regresa al mismo valor en el cual la línea de tiempo padre de la línea de tiempo regresaría. Una propiedad de EstáenReversa identifica si la línea de tiempo está en un período en reversa, como se ve a partir del marco local propio de la línea de tiempo de referencia. Esta propiedad, en contraste con la propiedad EstáProgresandoHaciaAdelante, no toma en cuenta el efecto de estar anidada en líneas de tiempo potencialmente en reversa. Si la propiedad EstáSobrescribiendoValorBase es falsa, entonces la propiedad EstáenReversa regresa falso. Otras propiedades están relacionadas con el estado de la actividad de la animación. Una propiedad de en cambio identifica si las líneas de tiempo del objeto de animación están activas. En contraste, una propiedad de EstáPausado regresa verdadero si la línea de tiempo está activa, pero la animación está pausada. La clase de animación también incluye un grupo de métodos
420. Un grupo de métodos de constructor, dentro de una clase de animación particular, crea objetos de animación incorporando comportamientos de animaciones en particular de un tipo de clase de a animación específica (por ejemplo, flotar, Buliano, punto, etc.). Un grupo de tipos de método constructor de animación, correspondiente a comportamientos de animaciones en particular, se identifican, a manera de ejemplo, en la Figura 5 descrita aquí más adelante. Un método de IniciarEn recibe como entrada un valor de tiempo de compensación. El método IniciarEn activa un inicio interactivo en un punto en el tempo en el futuro o pasado correspondiente al valor 52 de compensación. El parámetro de compensación de entrada especifica un tiempo en referencia a la línea de tiempo padre del objeto de animación. Si la línea de tiempo padre no está activa, este método no tiene efecto. Similarmente, un método de FinalizarEn recibe como entrada otro valor de tiempo relativo. El método FinalizarEn activa una final interactivo en el punto especificado en el tiempo en el futuro o pasado. El parámetro está en el marco de referencia de la línea de tiempo padre del objeto de animación. Si la línea de tiempo padre no está activa, este método no tiene efecto. Los métodos son provistos para detener/iniciar la progresión del objeto de animación mientras está activo. Un método de pausa, pausa la línea de tiempo del objeto de animación y los hijos que hacen referencia a la línea de tiempo del objeto de animación. Si esta línea de tiempo no está activa este método no tiene efecto. Inversamente, un método de resumir reinicia la línea de tiempo del objeto de animación y todas las líneas de tiempo de sus hijos. Si esta línea de tiempo no está activa y pausada este método no tiene efecto. Un método de buscar habilita moverse directamente a un punto en particular en una secuencia de ejecución de animación con base en un valor de compensación especificado. El método de buscar cambia el tiempo actual para esta línea de tiempo, que potencialmente afecta todas las líneas de tiempo de sus hijos. Si la línea de tiempo no está activa este método no tiene efecto.
53 Un método de ObtenerlnstanciaUnica recibe una línea de tiempo como entrada, y regresa una instancia del objeto de animación que puede mantener su propio estado de tiempo de operación separadamente de otras instancias. Si el objeto de animación contiene líneas de tiempo auto-emparentadas, la instancia regresada tiene esas líneas de tiempo emparentadas a la línea de tiempo que transcurrió como un parámetro. Un método de ObtenerValor toma como una entrada un valor base, de un cierto tipo, y devuelve otro valor del mismo tipo que el valor base de entrada. El valor de la salida depende de ambos, en la entrada (valor base) y en el estado interno del modificador (por ejemplo, objeto de animación/colección) al cual se pasa. En particular, estos medios para llamar ObtenerValor más de una vez con la misma entrada no garantizan que regresará la misma salida, y de hecho se espera cambiar durante el curso de una secuencia de animación. En el caso de clases de objeto de animación 222, el método ObtenerValor recibe un valor base pasado y regresa un valor en base a la computación de la definición del modificador interno de un valor de progreso. Finalmente, la estructura de la clase de animación soporta un grupo de eventos. Un evento Cambiado 430 surge siempre que el estado interno del objeto de animación cambie. La bandera del evento Cambiado 430 se utiliza para indicar que se necesita una reinterpretación (algo ha cambiado en posición o dimensión). Una señal del evento de Empezado surge cuando un objeto entra en un 54 período en el cual su estado interno está continuamente cambiando. Una señal del evento Terminado surge siempre que el objeto deja el período cuando su estado interno es continuamente cambiado. Un evento de Repetido surge siempre que la línea de tiempo del objeto repite su duración simple. Un evento Invertido surge siempre que la dirección del tiempo cambia en la línea de tiempo del objeto de animación. Los eventos Pausado, Resumido y Buscado surgen en respuesta a completar un método de Pausa, Resumir y Buscar correspondiente en la línea de tiempo del objeto de animación. Cambiando ahora a la Figura 5, se identifican un grupo de comportamientos del objeto de animación. Cada uno de los comportamientos identificados corresponde a una clase de constructor particular soportada, en donde es apropiado, por cada uno de los tipos de clases de animación listada previamente aquí anteriormente. Un tipo de constructor De 500 crea un objeto de animación que toma como su valor inicial un valor "De" pasado y progresa a un valor base especificado en la propiedad asociada. Un tipo de constructor A 510 crea un objeto de animación que toma como su valor inicial el valor base especificado en la propiedad asociada y progresa a un valor "A" pasado. Un tipo de constructor De-A 520 recibe parámetros pasados designando los valores de propiedad De y A para el objeto de animación, el valor base en la propiedad de los elementos animados no se utiliza durante la animación. Sin embargo, cuando la secuencia de animación termina la propiedad de elemento se revierte al valor base a menos que la 55 propiedad de cronometraje Llenar en el objeto de animación sea "Congelar". En lugar de especificar puntos finales para una animación, un rango del valor de animación puede ser especificado a través de un punto final y una cantidad del valor de cambio (delta). Un constructor Por 530 recibe un valor delta, inicia una animación a un valor base, y prosigue para cambiar el valor base a través de la cantidad especificada por el valor delta durante el curso del ciclo de animación. Un constructor De-por 540 recibe como sus entradas un valor "De" de inicio y prosigue a cambiar el valor "De" inicial a través de un valor delta pasado durante el ciclo de animación. Habiendo descrito un grupo básico de constructores para objetos de animación, se observa que la presente invención contempla una amplia variedad de comportamientos de animación (y constructores correspondientes), incluyendo composiciones/combinaciones de los comportamientos anteriormente mencionados. Habiendo descrito una estructura de clase de animación ilustrativa, la atención ahora se dirige al contenedor de los objetos de animación, las clases de la colección de animaciones 224. Cambiando ahora a la Figura 6, se describe una estructura ilustrativa para una ciase de colección de animaciones. Los objetos de la colección de animaciones mantienen una lista de objetos de animación específicamente definidos de las clases de animación 224. Cambiando primero a un grupo de métodos 600 soportados por las clases de la colección de animaciones, un método 56 ObtenerlnstanciaUnica regresa una instancia de la colección de animaciones con una línea de tiempo padre por defecto correspondiente a una identificación de la línea de tiempo pasada. La clase de la colección de animaciones también soporta una ¡nterfase para configurar una propiedad de
LineaTiempoPadrePorDefecto en una clase de la colección de animaciones. En una modalidad ilustrativa de la invención, el sistema de propiedades 220 llama al método ObtenerlnstanciaUnica para obtener una copia de una colección de animaciones particular para un objeto de la colección de animaciones dinámica. Una función constructora/entidad agrega objetos animados a la instancia de la colección de animaciones creada. Los objetos de animación dentro de la colección de animaciones son indexados y referenciados/accesados especificando una posición particular dentro de la lista (como en un arreglo). Un método de ObtenerValor toma como una entrada un valor base, de un cierto tipo, y regresa otro valor del mismo tipo como el valor base de entrada. El valor de la salida depende de ambos en la entrada (valor base) y en el estado interno del modificador (por ejemplo, objeto/colección de animaciones) al cual se pasa. En particular, estos medios que llaman a ObtenerValor más de una vez con la misma entrada no se garantiza que regresen la misma salida, y de hecho se espera que cambie durante el curso de una secuencia de animación. En el caso de la clase de la colección de animaciones, el método de ObtenerValor proporciona un valor base pasado al 57 primer objeto de animación en su colección. La salida del primer objeto de animación se convierte en el valor base de entrada para un siguiente objeto de animación (si está presente) en la colección de animaciones. Este proceso se repite hasta que el último objeto de animación en la colección de animaciones ha calculado una salida. El método de ObtenerVaior regresa un valor de salida provisto por el último objeto de animación dentro de la tubería de los objetos de animación dentro de la colección de animaciones. En la clase de la colección de animaciones también se incluye un grupo de propiedades 610. Una propiedad EstáCambiando y la propiedad EstáSobrescribiendoValorBase son similares a las propiedades nombradas correspondientes en los objetos de animación. Sin embargo, en el caso de una clase de la colección de animaciones, las propiedades se fusionan de tal manera que si cualquiera de las propiedades de los objetos de animación correspondientes regresa "Verdadero", entonces la propiedad correspondiente en la colección de animaciones regresa "Verdadero". La propiedad de Animaciones (arreglo) mantiene una lista de objetos de animación dentro de la colección dé animaciones. La colección de animaciones también soporta un grupo de evento 620. Los eventos Cambiados combinan y reportan los eventos correspondientes, descritos aquí anteriormente, cesados de los objetos de animación constituyentes de la colección de animaciones. Cambiando ahora a la Figura 7, un grupo de métodos y propiedades se identifican para la clase de la colección de 58 animaciones 226. El grupo de métodos 700 incluye un método constructor de la colección de animaciones dinámica. El método constructor de la colección de animaciones dinámica recibe una entrada, una referencia de elemento (en el árbol de elementos 2.02), una propiedad dinámica en el elemento, y una instancia de la colección de animaciones, el constructor devuelve un objeto de la colección de animaciones dinámica que opera como una interfase entre los cambios inducidos por la línea de tiempo a los objetos de animación dentro del objeto de la colección de animaciones pasado, y la propiedad dinámica en el elemento contenido en el árbol de elementos 202. Una interfase en el objeto de la colección de animaciones dinámica soporta configurar/obtener el objeto de la colección de animaciones con el cual el objeto de la colección de animaciones dinámica está asociada. Un método de
FijarLíneaTiempoPadrePorDefecto repara las conexiones de la línea de tiempo en el evento del elemento, al cual el objeto de la colección de animaciones dinámica está conectado, es reubicado en el árbol de elementos 202 o el cronometraje para el elemento es de otra forma cambiado. Un método de ObtenerValor devuelve el valor actual para la propiedad animada del elemento (provista por la colección de animaciones a la cual la colección de animaciones dinámica está conectada). Un método de ActivarCambiado es llamado cuando el progreso 59 de cualquier objeto de animación dentro de la colección de animaciones ha cambiado. Cuando se invoca, el método de ActivarCambiado causa una invalidación de la propiedad dinámica. Esto a su vez invoca la reinterpretación de los elementos afectados. Cambiando a las propiedades 710, una propiedad de
PropiedadDinámicaOrlginal regresa una referencia a la propiedad dinámica con al cual la colección de animaciones dinámica está asociada. Una propiedad de Elemento regresa el elemento con el cual la colección de animaciones dinámica está asociada. El EstáSobrescribiendoValorBase regresa un valor en base a una llamada a la propiedad nombrada correspondiente en la colección de animaciones con la cual está asociada. Habiendo descrito una arquitectura de animación, utilizando la arquitectura descrita para las propiedades animadas en elementos dándoles valores variantes en el tiempo descritos a manera de ejemplo. En general, cada recurso animado, método u objeto incluye una interfase que habilita la notificación de las capacidades de animación de la entidad, su línea de tiempo padre por defecto, si ha cambiado, un valor actual del objeto, y si la entidad está cambiando. A manera de un ejemplo particular, la interfase de una entidad que se puede animar incluye una propiedad de HacerCambio que regresa Verdadero si el objeto puede variar con el tiempo. En general, la propiedad HacerCambio es verdadera si el objeto controla cualquiera de las colecciones de animaciones. Una propiedad de LíneaTiempoPadrePorDefecto regresa una referencia a una línea de 60 tiempo que es el padre de cualesquiera líneas de tiempo auto-emparentadas. Si la propiedad de LíneaTiempoPadrePorDefecto está establecida, entonces cualesquiera líneas de tiempo auto-emparentadas son re-emparentadas, pero un nuevo clon no se crea ya sea para las líneas de tiempo o para sus objetos sujeto de animación. Una propiedad EstáCambiando regresa Verdadero si cualquiera de las animaciones en un objeto que se puede animar está cambiando. Una propiedad de EstásobrescribiendoValorBase regresa Verdadero si cualquier línea de tiempo del objeto sujeto de animación está activo o en un período de relleno. Un evento Cambiado surge siempre que eí valor de la entidad sujeta de animación cambia. Además, la entidad sujeta de animación incluye un método que regresa un objeto que se utiliza como el valor de la propiedad. El valor es el valor instantáneo del objeto, regresa un objeto que puede ser utilizado como el valor de una propiedad. Si el objeto se refiere a cualquiera de las líneas de tiempo auto-emparentadas, la instancia devuelta tiene aquellas líneas de tiempo emparentadas a la línea de tiempo padre por defecto especificada. Una entidad sujeta de 'animación también especifica para cada propiedad sujeta de animación, una referencia correspondiente a un tipo de colección de animaciones para facilitar la creación de una colección de animaciones dinámica a través del sistema de propiedades. En una modalidad de la invención, las colecciones de animaciones se utilizan en lugar de los objetos de animación básicos 61
ya que dicho uso impedirá la composición de animación. Los recursos se animan a través de la adición de colecciones de animaciones a propiedades individuales. El siguiente ejemplo muestra cómo crear un CepilloColorSólido con un color animado.
ConstructorAnimaciónColor Constructoranim = nuevo ConstructorAn imación Color(); Constructoranim. De = nuevo Color (1.0f, O.Of, O.Of, O.Of ); Constructoranim. Inicia = nuevo Tiempo (0); Constructoranim. A = nuevo Color (1.0f, 1.0f, O.Of, O.Of ); Constructoranim. Duración = nuevo Tiempo (1000 ); Constructoranim. DuraciónRepetición = Tiempo:lndefinido;
ConstructorCepiiloColorSólido Constructorcepillo = nuevo ConstructorCepilloColorSólido (); Constructorcepillo. Color = nuevo Color (1.0f, O.Of, O.Of, O.Of );
Constructorcepillo. Animaciones Color = Constructorcepillo. ACoiorAn imación ();
CepilloColorSólido Cepilloanimado con struct orce pillo. AcepilloQ;
Los recursos de animación pueden ser utilizados en operaciones de interpretación o como valores para las propiedades del elemento. Una operación de interpretación es animada, a manera de ejemplo, a través de la adición de colecciones de animaciones a las llamadas del método de contexto de dibujo, o utilizando recursos animados. El siguiente ejemplo muestra cómo empujar un valor de 62
opacidad animado dentro de un contexto de dibujo.
ConstructorAnimaciónFlotada Constructoranim = nuevo ConstructorAnimaciónFlotada (); Constructoranim. De = O.Of; Constructoranim. Iniciar = Tiempo. Inmediatamente; Constructoranim. A = 1.0f; Constructoranim. Duración = nuevo Tiempo (1000); Constructoranim. Llenar = TiempoLlenado. Congelar;
miContextoDibujo. EmpujarOpacidad (O.Of, Constructoranim. AAn imación Flotada ());
Los elementos pueden ser animados agregando colecciones de animaciones a las propiedades del Elemento. El siguiente ejemplo muestra cómo animar la anchura de un botón con forma de C.
63
ConstructorAnimaciónUnitCaja Constructoranim = nuevo ConsíructorAn imación UnitCaja (); Constructoranim. De = nueva UnitCaja (50); Constructoranim. Iniciar = Tiempo. Inmediatamente; Constructoranim. Para = nueva UnitCaja (100); Constructoranim. Duración = nuevo Tiempo (1000); Constructoranim. Aceleración = 0.2; Constructoranim. Desaceleración = 0.2; Constructoranim. Llenar = TiempoLlenar. Congelar;
miBotón. Anchura = nueva UnitCaja miBotón.AnimacionesAnchura = Constructoranim. Para An imación UnitCaj
Lo siguiente muestra el mismo ejemplo en XAML
<ID Botón = "m¡Botón" Anchura = "50"> <Botón.Anchura> <AnimaciónCajaUnit> De = "50" I n ici a r=" Inmediatamente" A="100" Duración="1 " Aceleración = "0.2" Desaceleración = "0.2" Llenar="Congelar" /> <Botón.Anchura> </Botón>
Siempre que una animación (o un recurso animado) se utilice, la animación (o el recurso) se clona para proporcionar el destino con una línea de tiempo única, independientemente controlable. Una consecuencia de esta forma en particular de implementar la 64 animación en una propiedad es que la animación original nunca es parte de una escena visual, y por lo tanto no responde a llamadas de control a través de la interfase de cronometraje del objeto de animación. Para lograr este efecto, el código de llamada primero debe utilizar una animación y después leer otra vez la animación. El valor que es leído de nuevo puede ser guardado en la memoria caché y utilizarse para el control del cronometraje. El siguiente ejemplo muestra un patrón que el código intenta controlar las siguientes animaciones:
Claims (39)
1. Un sistema de animación de despliegue gráfico que soporta modificación cronometrada de valores de propiedad del elemento, el sistema de animación de despliegue gráfico comprende: una estructura de despliegue para mantener un grupo de elementos, en donde un elemento incluye un valor de propiedad variable afectando una característica de despliegue del elemento; un sistema de propiedades para mantener las propiedades asociadas con los elementos mantenidos por la estructura de despliegue, incluyendo propiedades dinámicas que son capaces de cambiar a través del tiempo; y clases de animaciones, a partir de las cuales los objetos de animación son específicamente definidos, en donde las instancias del objeto de animación proporcionan valores variables de tiempo que afectan los valores asignados a las propiedades dinámicas.
2. El sistema de animación dinámica de acuerdo con la reivindicación 1, que comprende además: una clase de animación dinámica, que asocia uno o más objetos de animación con una propiedad dinámica de un elemento dentro de la estructura de despliegue.
3. El sistema de animación dinámica de acuerdo con la reivindicación 1, que comprende además: una clase de colección de animaciones, para agrupar un grupo de objetos de clase de animación; 68 en donde una instancia de ia clase de la colección de animaciones proporciona un valor de salida compuesto aplicando el grupo de objetos de clase de animación a un valor base.
4. El sistema de animación dinámica de acuerdo con la reivindicación 1, en donde las clases de animación cada una especifica una línea de tiempo interna.
5. El sistema de animación dinámica de acuerdo con la reivindicación 4, en donde las instancias del objeto de animación están conectadas a una línea de tiempo padre que proporciona un contexto para una secuencia de cronometraje definida por la línea de tiempo interna.
6. El sistema de animación dinámica de acuerdo con la reivindicación 5, en donde la línea de tiempo padre se especifica a través de un contenedor para las instancias del objeto de animación.
7. El sistema de animación dinámica de acuerdo con la reivindicación 1, en donde unas de las clases de animación están asociadas con un tipo de datos particular para el cual interpretan un valor variable de tiempo.
8. El sistema de animación dinámica de acuerdo con la reivindicación 7, en donde una clase de animación proporciona un valor de punto flotante.
9. El sistema de animación dinámica dé acuerdo con la reivindicación 7, en donde una clase de animación proporciona dimensiones para una caja presentador.
10. El sistema de animación dinámica de acuerdo con la 69 reivindicación 7, en donde una clase de animación proporciona la posición izquierda superior de un rectángulo.
11. El sistema de animación dinámica de acuerdo con la reivindicación 7, en donde una clase de animación proporciona un valor de tiempo cambiante en el tiempo.
12. El sistema de animación dinámica de acuerdo con la reivindicación 7, en donde una clase de animación proporciona un valor Booleano.
13. Un método para animar elementos de despliegue en un sistema de despliegue gráfico incluyendo una estructura para mantener un grupo de elementos de despliegue de tiempo de operación generados a través de un programa de ejecución y un sistema de propiedades para manejar las propiedades asociadas con los elementos de despliegue, y en donde el animar unos de los elementos de despliegue se logra a través de la modificación de los valores de propiedad del elemento de despliegue en respuesta a un paso del tiempo, el método comprende: crear un elemento de despliegue gráfico incluyendo una propiedad modificable; definir un comportamiento de animación asignable a la propiedad modificable; asociar, de acuerdo con las solicitudes de un programa en un tiempo de operación, el comportamiento de la animación con la propiedad modificable del elemento; y proporcionar una secuencia de valores variantes en el tiempo a 70 la propiedad modlficable de acuerdo con el comportamiento de la animación.
14. El método de acuerdo con la reivindicación 13, que comprende además proporcionar un grupo de clases de animación, en donde cada clase de animación define un comportamiento de la animación.
15. El método de acuerdo con la reivindicación 13, en donde el grupo de clases de animación especifica un tipo de animación, en donde un tipo de animación corresponde a un tipo de datos procesados por instancias de una clase de animación.
16. Ei método de acuerdo con la reivindicación 13, en donde el paso de proporcionar se facilita a través de un objeto de animación específicamente definido de una clase de animación modalizando el comportamiento de la animación.
17. El método de acuerdo con la reivindicación 13, en donde la definición del paso del comportamiento de la animación comprende agrupar un grupo de instancias de clases de animación dentro de una clase de colección de animaciones, en donde una instancia de una clase de colección de animaciones proporciona un valor de salida compuesto aplicando un grupo de instancias de clases de animación a un valor base.
18. El método de acuerdo con la reivindicación 13, en donde el paso de asociar comprende específicamente definir una clase de animación dinámica que conecta uno o más objetos de animación con la propiedad modificable en el elemento. 71
19. El método de acuerdo con la reivindicación 13, en donde el cronometraje para la progresión de la secuencia de valores variantes en el tiempo se especifican de acuerdo con un nodo de árbol de cronometraje asociado con uno o más objetos de animación definiendo el comportamiento de la animación.
20. El método de acuerdo con la reivindicación 13, que además comprende conectar una línea de tiempo padre con un objeto de animación por lo tanto proveyendo un contexto de cronometraje global para una secuencia de cronometraje local definida por una línea de tiempo interna.
21. El método de acuerdo con la reivindicación 20, en donde la línea de tiempo padre del objeto de animación se especifica a través de un contenedor para una colección de las instancias del objeto de animación.
22. El método de acuerdo con la reivindicación 13, en donde la provisión del paso de una secuencia de valores variantes en el tiempo comprende aplicar múltiples tiempos, a través de un período de animación activo, un tiempo actual y un valor de propiedad base a un generador del valor de animación modalizando el comportamiento de la animación, para interpretar el valor actual para la propiedad modíficable; y generar un diseño actualizado de acuerdo con el valor actual para la propiedad modíficable.
23. Un método para aplicar un comportamiento de la animación a una propiedad del elemento mantenido por el sistema de 72 propiedades para implementar modificaciones secuenciales al valor de la propiedad del elemento a través del curso del tiempo, dicho método comprende: específicamente definir instancias del objeto de animación a partir de las clases de animación especificando comportamientos de la animación básicos; específicamente definir un objeto de la colección de animaciones de una clase de la colección de animaciones especificando una lista de objetos de animación constituyentes; y específicamente definir una colección de animaciones dinámica de una clase de colección de animaciones que asocia el objeto de la colección de animaciones con la propiedad del elemento mantenida por el sistema de propiedades.
24. El método de acuerdo con la reivindicación 23, que comprende además asignar líneas de tiempo padre a instancias de las clases de objeto de animación.
25. El método de acuerdo con la reivindicación 23, que comprende además bloquear las propiedades de las instancias del objeto de animación.
26. El método de acuerdo con la reivindicación 23, que comprende además bloquear las propiedades de las instancias del objeto de la colección de animaciones.
27. El método de acuerdo con la reivindicación 23, que comprende además: aplicar un tiempo actual y un valor de propiedad base a los 73 objetos de animación constituyentes del objeto de la colección de animaciones para interpretar un valor de propiedad' actual para la propiedad del elemento; y generar un diseño actualizado de acuerdo con el valor de propiedad actual para al propiedad de elemento.
28. Un medio legible por computadora incluyendo instrucciones ejecutables por computadora para proporcionar un sistema de animación de despliegue gráfico que soporta modificación cronometrada de valores de propiedad del elemento, el sistema de animación de despliegue gráfico comprende: una estructura de despliegue para mantener un grupo de elementos, en donde un elemento incluye un valor de propiedad variable afectando una característica de despliegue del elemento; un sistema de propiedades para mantener las propiedades asociadas con los elementos mantenidos por la estructura de despliegue, incluyendo propiedades dinámicas que son capaces de cambiar a través del tiempo; y clases de animación, a partir de las cuales los objetos de animación son específicamente definidos, en donde las instancias del objeto de animación proporcionan valores variantes en el tiempo afectando los valores asignados a las propiedades dinámicas.
29. El medio legible por computadora de acuerdo con la reivindicación 28, en donde el sistema de animación de despliegue gráfico además comprende: una clase de animación dinámica, que asocia uno o más 74 objetos de animación con una propiedad dinámica de un elemento dentro de la estructura de despliegue.
30. El medio legible por computadora de acuerdo con la reivindicación 28, en donde el sistema de animación de despliegue gráfico además comprende: una clase de la colección de animaciones, para agrupar un grupo de objetos de clase de colección de animaciones, en donde una instancia de la clase de la colección de animaciones proporciona un valor de salida compuesto aplicando el grupo de objetos de la clase de animación a un valor base.
31. El medio legible por computadora de acuerdo con la reivindicación 28, en donde las clases de animación cada una especifica una línea de tiempo interna.
32. El medio legible por computadora de acuerdo con la reivindicación 31, en donde las instancias del objeto de animación están conectadas a una línea de tiempo padre que proporciona un contexto para una secuencia de cronometraje definida por la línea de tiempo interna.
33. El medio legible por computadora de acuerdo con la reivindicación 32, en donde la línea de tiempo padre se especifica a través de un contenedor para las instancias del objeto de animación.
34. El medio legible por computadora de acuerdo con la reivindicación 28, en donde unas de las clases de animación están asociadas con un tipo de datos particular para las cuales se interpreta un valor de tiempo variable. 75
35. El medio legible por computadora de acuerdo con la reivindicación 34, en donde una clase de animación de las clases de animación proporciona un valor de punto flotante.
36. El medio legible por computadora de acuerdo con la reivindicación 34, en donde una clase de animación de las clases de animación proporciona dimensiones para una caja presentador.
37. El medio legible por computadora de acuerdo con la reivindicación 34, en donde una clase de animación de las clases de animación proporciona la posición izquierda, superior de un rectángulo.
38. El medio legible por computadora de acuerdo con la reivindicación 34, en donde una clase de animación de las clases de animación proporciona un valor de color cambiante en el tiempo.
39. El medio legible por computadora de acuerdo con la reivindicación 34, en donde una clase de animación de las clases de animación proporciona un valor Booleano.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/434,718 US7173623B2 (en) | 2003-05-09 | 2003-05-09 | System supporting animation of graphical display elements through animation object instances |
PCT/US2003/015988 WO2004104938A1 (en) | 2003-05-09 | 2003-05-15 | Creating and executing animation behavior for gui |
Publications (1)
Publication Number | Publication Date |
---|---|
MXPA04006333A true MXPA04006333A (es) | 2005-02-14 |
Family
ID=33416767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MXPA04006333A MXPA04006333A (es) | 2003-05-09 | 2003-05-15 | Sistema que soporta la animacion de elementos de despliegue graficos a traves de instancias de objetos de animacion. |
Country Status (12)
Country | Link |
---|---|
US (2) | US7173623B2 (es) |
EP (1) | EP1639555A4 (es) |
JP (1) | JP4268586B2 (es) |
KR (1) | KR100938036B1 (es) |
CN (1) | CN100361162C (es) |
AU (1) | AU2003248542B2 (es) |
BR (1) | BR0306442A (es) |
CA (1) | CA2461516C (es) |
MX (1) | MXPA04006333A (es) |
RU (1) | RU2327218C2 (es) |
WO (1) | WO2004104938A1 (es) |
ZA (1) | ZA200404107B (es) |
Families Citing this family (176)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9722766D0 (en) | 1997-10-28 | 1997-12-24 | British Telecomm | Portable computers |
US7469381B2 (en) | 2007-01-07 | 2008-12-23 | Apple Inc. | List scrolling and document translation, scaling, and rotation on a touch-screen display |
US7296243B2 (en) | 2002-03-19 | 2007-11-13 | Aol Llc | Animating display motion |
JP3755499B2 (ja) * | 2002-09-06 | 2006-03-15 | ソニー株式会社 | Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム |
US7278091B2 (en) * | 2003-05-13 | 2007-10-02 | Microsoft Corporation | Method and system for selectively enforcing presentation themes |
US7693867B2 (en) * | 2003-05-14 | 2010-04-06 | Pixar | Model referencing method and apparatus |
US20050033822A1 (en) * | 2003-08-05 | 2005-02-10 | Grayson George Dale | Method and apparatus for information distribution and retrieval |
US8751950B2 (en) * | 2004-08-17 | 2014-06-10 | Ice Edge Business Solutions Ltd. | Capturing a user's intent in design software |
WO2005039185A1 (en) * | 2003-10-06 | 2005-04-28 | Mindego, Inc. | System and method for creating and executing rich applications on multimedia terminals |
US7219340B2 (en) * | 2003-10-23 | 2007-05-15 | Microsoft Corporation | Changeable class and pattern to provide selective mutability in computer programming environments |
US20050122328A1 (en) * | 2003-12-05 | 2005-06-09 | Peiya Liu | Method and apparatus for specifying animation styles |
US7490295B2 (en) | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US7936352B2 (en) * | 2004-07-21 | 2011-05-03 | Dassault Systemes Solidworks Corporation | Deformation of a computer-generated model |
WO2009111885A1 (en) | 2008-03-11 | 2009-09-17 | Dirtt Environmental Solutions, Ltd. | Automatically creating and modifying furniture layouts in design software |
US7603624B2 (en) * | 2004-10-21 | 2009-10-13 | Microsoft Corporation | System and method for styling content in a graphical user interface control |
US7769840B1 (en) * | 2004-11-19 | 2010-08-03 | Sprint Communications Company L.P. | Network status animation tool |
US8081960B2 (en) * | 2005-02-21 | 2011-12-20 | Samsung Electronics Co., Ltd. | Device and method for processing data resource changing events in a mobile terminal |
US20060236219A1 (en) * | 2005-04-19 | 2006-10-19 | Microsoft Corporation | Media timeline processing infrastructure |
US7561159B2 (en) * | 2005-05-31 | 2009-07-14 | Magnifi Group Inc. | Control of animation timeline |
US7432928B2 (en) * | 2005-06-14 | 2008-10-07 | Microsoft Corporation | User interface state reconfiguration through animation |
US7477254B2 (en) * | 2005-07-13 | 2009-01-13 | Microsoft Corporation | Smooth transitions between animations |
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
US7804503B2 (en) * | 2006-05-15 | 2010-09-28 | Microsoft Corporation | Animating objects using metadata |
EP1868352A1 (en) * | 2006-06-16 | 2007-12-19 | Eaton Power Quality Corporation | Methods, devices and computer program products for providing device status information |
US20080010492A1 (en) * | 2006-06-16 | 2008-01-10 | Eaton Power Quality Corporation | Methods, Devices and Computer Program Products For Providing Device Status Information |
US8166415B2 (en) * | 2006-08-04 | 2012-04-24 | Apple Inc. | User interface for backup management |
US8130226B2 (en) | 2006-08-04 | 2012-03-06 | Apple Inc. | Framework for graphics animation and compositing operations |
US9019300B2 (en) | 2006-08-04 | 2015-04-28 | Apple Inc. | Framework for graphics animation and compositing operations |
US7877690B2 (en) * | 2006-09-20 | 2011-01-25 | Adobe Systems Incorporated | Media system with integrated clip views |
US20080084416A1 (en) * | 2006-10-06 | 2008-04-10 | Microsoft Corporation | User-pluggable rendering engine |
US8234392B2 (en) | 2006-11-17 | 2012-07-31 | Apple Inc. | Methods and apparatuses for providing a hardware accelerated web engine |
KR101288970B1 (ko) * | 2006-11-28 | 2013-07-24 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
KR100827241B1 (ko) * | 2006-12-18 | 2008-05-07 | 삼성전자주식회사 | 동적 영상물을 생성하기 위한 템플릿을 편집하는 장치 및방법 |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US7844915B2 (en) | 2007-01-07 | 2010-11-30 | Apple Inc. | Application programming interfaces for scrolling operations |
US7903115B2 (en) | 2007-01-07 | 2011-03-08 | Apple Inc. | Animations |
US7872652B2 (en) * | 2007-01-07 | 2011-01-18 | Apple Inc. | Application programming interfaces for synchronization |
US20080168402A1 (en) | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US8813100B1 (en) | 2007-01-07 | 2014-08-19 | Apple Inc. | Memory management |
US8656311B1 (en) | 2007-01-07 | 2014-02-18 | Apple Inc. | Method and apparatus for compositing various types of content |
US20080177776A1 (en) * | 2007-01-22 | 2008-07-24 | Stallings Richard W | Animation object shell system and method |
KR100877066B1 (ko) * | 2007-01-22 | 2009-01-09 | 삼성전자주식회사 | Layout 구조를 이용한 GUI 위짓 구성 장치 및이를 운영하는 방법 |
US8643653B2 (en) * | 2007-06-08 | 2014-02-04 | Apple Inc. | Web-based animation |
US20080307017A1 (en) | 2007-06-08 | 2008-12-11 | Apple Inc. | Searching and Restoring of Backups |
US8010900B2 (en) * | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US8307004B2 (en) | 2007-06-08 | 2012-11-06 | Apple Inc. | Manipulating electronic backups |
US20120229473A1 (en) * | 2007-07-17 | 2012-09-13 | Airgini Group, Inc. | Dynamic Animation in a Mobile Device |
US7941758B2 (en) * | 2007-09-04 | 2011-05-10 | Apple Inc. | Animation of graphical objects |
US20090128581A1 (en) * | 2007-11-20 | 2009-05-21 | Microsoft Corporation | Custom transition framework for application state transitions |
WO2009085063A1 (en) * | 2007-12-21 | 2009-07-09 | Studio Gpu, Inc. | Method and system for fast rendering of a three dimensional scene |
US20090177538A1 (en) * | 2008-01-08 | 2009-07-09 | Microsoft Corporation | Zoomable advertisements with targeted content |
US8416196B2 (en) | 2008-03-04 | 2013-04-09 | Apple Inc. | Touch event model programming interface |
US8174502B2 (en) | 2008-03-04 | 2012-05-08 | Apple Inc. | Touch event processing for web pages |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US9589381B2 (en) | 2008-06-12 | 2017-03-07 | Microsoft Technology Licensing, Llc | Copying of animation effects from a source object to at least one target object |
US20090322760A1 (en) * | 2008-06-26 | 2009-12-31 | Microsoft Corporation | Dynamic animation scheduling |
KR101531417B1 (ko) * | 2008-07-16 | 2015-06-25 | 삼성전자주식회사 | 리치 미디어 컨텐츠 송수신 방법 및 장치 |
US8099677B2 (en) * | 2008-07-22 | 2012-01-17 | Qualcomm Incorporated | Method and apparatus for animation profiling |
US20100064222A1 (en) * | 2008-09-08 | 2010-03-11 | Apple Inc. | Object-aware transitions |
US8411046B2 (en) | 2008-10-23 | 2013-04-02 | Microsoft Corporation | Column organization of content |
US20100107100A1 (en) | 2008-10-23 | 2010-04-29 | Schneekloth Jason S | Mobile Device Style Abstraction |
JP2010165337A (ja) | 2008-12-15 | 2010-07-29 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
US8836706B2 (en) * | 2008-12-18 | 2014-09-16 | Microsoft Corporation | Triggering animation actions and media object actions |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US9311112B2 (en) | 2009-03-16 | 2016-04-12 | Apple Inc. | Event recognition |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US8566044B2 (en) * | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8238876B2 (en) | 2009-03-30 | 2012-08-07 | Microsoft Corporation | Notifications |
US8175653B2 (en) | 2009-03-30 | 2012-05-08 | Microsoft Corporation | Chromeless user interface |
DE102009018165A1 (de) * | 2009-04-18 | 2010-10-21 | Schreiber & Friends | Verfahren zur Darstellung eines animierten Objekts |
US8836648B2 (en) | 2009-05-27 | 2014-09-16 | Microsoft Corporation | Touch pull-in gesture |
KR20100138700A (ko) * | 2009-06-25 | 2010-12-31 | 삼성전자주식회사 | 가상 세계 처리 장치 및 방법 |
US8593463B2 (en) | 2009-10-27 | 2013-11-26 | Microsoft Corporation | Controlling animation frame rate of applications |
US9223589B2 (en) * | 2010-02-26 | 2015-12-29 | Microsoft Technology Licensing, Llc | Smooth layout animation of visuals |
CN101833447B (zh) * | 2010-04-08 | 2012-12-26 | 广东欧珀移动通信有限公司 | 一种利用补间动画实现桌面Widget动画的方法 |
US8860734B2 (en) | 2010-05-12 | 2014-10-14 | Wms Gaming, Inc. | Wagering game object animation |
US8552999B2 (en) | 2010-06-14 | 2013-10-08 | Apple Inc. | Control selection approximation |
US8957920B2 (en) | 2010-06-25 | 2015-02-17 | Microsoft Corporation | Alternative semantics for zoom operations in a zoomable scene |
CN102314700B (zh) * | 2010-07-07 | 2016-06-22 | 腾讯科技(深圳)有限公司 | 一种控制客户端用户显示模式的方法及系统 |
CN101980154B (zh) * | 2010-11-02 | 2014-01-08 | 深圳市融创天下科技股份有限公司 | 一种界面控件树的创建和绘制的方法、系统及移动终端 |
CN102136154B (zh) * | 2010-11-18 | 2012-12-12 | 彭浩明 | 一种动漫制作方法及装置 |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US20120159383A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Customization of an immersive environment |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US8982132B2 (en) * | 2011-02-28 | 2015-03-17 | Adobe Systems Incorporated | Value templates in animation timelines |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9298363B2 (en) | 2011-04-11 | 2016-03-29 | Apple Inc. | Region activation for touch sensitive surface |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US9218683B2 (en) | 2011-05-27 | 2015-12-22 | Microsoft Technology Licensing, Llc | Collection rearrangement animation |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US9361715B2 (en) | 2011-06-02 | 2016-06-07 | Microsoft Technology Licensing, Llc | Global composition system |
US8687023B2 (en) | 2011-08-02 | 2014-04-01 | Microsoft Corporation | Cross-slide gesture to select and rearrange |
US8812980B2 (en) | 2011-08-26 | 2014-08-19 | Microsoft Corporation | Objectizing and animating images |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US8933952B2 (en) | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US9171098B2 (en) * | 2011-09-30 | 2015-10-27 | Microsoft Technology Licensing, Llc | Decomposing markup language elements for animation |
US8884971B2 (en) * | 2011-09-30 | 2014-11-11 | Microsoft Corporation | Animation engine decoupled from animation catalog |
US20130097552A1 (en) * | 2011-10-18 | 2013-04-18 | Microsoft Corporation | Constructing an animation timeline via direct manipulation |
KR101304211B1 (ko) * | 2011-10-21 | 2013-09-05 | 한국과학기술정보연구원 | 시변환 시뮬레이션 데이터의 가시화를 통한 애니메이션 가시화 서비스 시스템 및 방법 |
US9607420B2 (en) | 2011-11-14 | 2017-03-28 | Microsoft Technology Licensing, Llc | Animations for scroll and zoom |
CN102541545A (zh) * | 2011-12-21 | 2012-07-04 | 厦门雅迅网络股份有限公司 | 嵌入式系统平台的桌面随机动画的实现方式 |
US9223472B2 (en) | 2011-12-22 | 2015-12-29 | Microsoft Technology Licensing, Llc | Closing applications |
US9292955B1 (en) * | 2012-01-05 | 2016-03-22 | Google Inc. | Sequencing of animations in software applications |
US9128605B2 (en) | 2012-02-16 | 2015-09-08 | Microsoft Technology Licensing, Llc | Thumbnail-image selection of applications |
US8471857B1 (en) | 2012-04-12 | 2013-06-25 | Google Inc. | Changing animation displayed to user |
US20130271473A1 (en) * | 2012-04-12 | 2013-10-17 | Motorola Mobility, Inc. | Creation of Properties for Spans within a Timeline for an Animation |
US9767720B2 (en) * | 2012-06-25 | 2017-09-19 | Microsoft Technology Licensing, Llc | Object-centric mixed reality space |
US9171401B2 (en) | 2013-03-14 | 2015-10-27 | Dreamworks Animation Llc | Conservative partitioning for rendering a computer-generated animation |
US9224239B2 (en) | 2013-03-14 | 2015-12-29 | Dreamworks Animation Llc | Look-based selection for rendering a computer-generated animation |
US9230294B2 (en) | 2013-03-15 | 2016-01-05 | Dreamworks Animation Llc | Preserving and reusing intermediate data |
US9626787B2 (en) | 2013-03-15 | 2017-04-18 | Dreamworks Animation Llc | For node in render setup graph |
US9659398B2 (en) | 2013-03-15 | 2017-05-23 | Dreamworks Animation Llc | Multiple visual representations of lighting effects in a computer animation scene |
US9208597B2 (en) | 2013-03-15 | 2015-12-08 | Dreamworks Animation Llc | Generalized instancing for three-dimensional scene data |
US9514562B2 (en) | 2013-03-15 | 2016-12-06 | Dreamworks Animation Llc | Procedural partitioning of a scene |
US9811936B2 (en) | 2013-03-15 | 2017-11-07 | Dreamworks Animation L.L.C. | Level-based data sharing for digital content production |
US9218785B2 (en) | 2013-03-15 | 2015-12-22 | Dreamworks Animation Llc | Lighting correction filters |
US9589382B2 (en) * | 2013-03-15 | 2017-03-07 | Dreamworks Animation Llc | Render setup graph |
US9450952B2 (en) | 2013-05-29 | 2016-09-20 | Microsoft Technology Licensing, Llc | Live tiles without application-code execution |
US9542906B2 (en) | 2013-05-10 | 2017-01-10 | Microsoft Technology Licensing, Llc | Shared compositional resources |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
CN104461486B (zh) * | 2013-09-17 | 2019-04-30 | 腾讯科技(深圳)有限公司 | 一种网页页面中动画效果实现的方法、装置及系统 |
US20150143260A1 (en) * | 2013-11-18 | 2015-05-21 | Facebook, Inc. | State-Machine-Driven User-Interface Interactions |
US9436577B2 (en) * | 2013-11-22 | 2016-09-06 | Nintendo Co., Ltd. | System and method for generating a code execution timeline from an executing program |
US9761035B1 (en) * | 2014-03-03 | 2017-09-12 | Mindstream Interface Dynamics, Inc. | Dynamic user interfaces |
CN105359094A (zh) | 2014-04-04 | 2016-02-24 | 微软技术许可有限责任公司 | 可扩展应用表示 |
EP3129846A4 (en) | 2014-04-10 | 2017-05-03 | Microsoft Technology Licensing, LLC | Collapsible shell cover for computing device |
KR20160143784A (ko) | 2014-04-10 | 2016-12-14 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 컴퓨팅 디바이스용 슬라이더 커버 |
US10346941B2 (en) | 2014-05-30 | 2019-07-09 | Apple Inc. | System and method for unified application programming interface and model |
US9740464B2 (en) | 2014-05-30 | 2017-08-22 | Apple Inc. | Unified intermediate representation |
US10430169B2 (en) | 2014-05-30 | 2019-10-01 | Apple Inc. | Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US9916069B2 (en) | 2014-09-04 | 2018-03-13 | Microsoft Technology Licensing, Llc | User interface with dynamic transition times |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
KR101626754B1 (ko) * | 2014-10-07 | 2016-06-02 | 한국과학기술정보연구원 | 시변환 데이터 가시화 시스템 및 그 방법 |
WO2016065568A1 (en) | 2014-10-30 | 2016-05-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
EP3018600B1 (en) * | 2014-11-10 | 2021-12-29 | B. Braun Avitum AG | Blood purification device user interface feedback method |
US10395413B2 (en) * | 2015-03-03 | 2019-08-27 | Jeremy Flores | Dynamic user interfaces |
US10037576B2 (en) | 2015-07-02 | 2018-07-31 | Cfph, Llc | Visualization of changes through the use of graphical geometric shapes |
US20170017616A1 (en) * | 2015-07-17 | 2017-01-19 | Apple Inc. | Dynamic Cinemagraph Presentations |
CN105187888A (zh) * | 2015-07-30 | 2015-12-23 | 深圳创维-Rgb电子有限公司 | 一种智能电视界面版块元素的创建实现方法及系统 |
US10297064B2 (en) * | 2015-09-21 | 2019-05-21 | Dreamworks Animation L.L.C. | Multi-representation dependency graphs |
USD813270S1 (en) | 2015-11-13 | 2018-03-20 | Cfph, Llc | Display screen with animated graphical user interface |
US10013789B2 (en) | 2015-11-20 | 2018-07-03 | Google Llc | Computerized motion architecture |
CN106843709B (zh) * | 2015-12-04 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 根据实时信息显示展现对象的方法和装置 |
US10296088B2 (en) * | 2016-01-26 | 2019-05-21 | Futurewei Technologies, Inc. | Haptic correlated graphic effects |
US10222960B2 (en) * | 2016-04-26 | 2019-03-05 | Google Llc | Animation of user interface elements |
CN106887030B (zh) * | 2016-06-17 | 2020-03-06 | 阿里巴巴集团控股有限公司 | 一种动画生成方法和装置 |
CN106709980B (zh) * | 2017-01-09 | 2020-09-04 | 北京航空航天大学 | 一种基于形式化的复杂三维场景建模方法 |
USD825584S1 (en) | 2017-03-29 | 2018-08-14 | Becton, Dickinson And Company | Display screen or portion thereof with transitional graphical user interface |
CN109872212B (zh) * | 2017-12-05 | 2023-02-10 | 阿里巴巴集团控股有限公司 | 一种用于互联网平台商品数据信息联动的方法和装置 |
CN110020370B (zh) * | 2017-12-25 | 2023-03-14 | 阿里巴巴集团控股有限公司 | 在客户端应用中实现动画的方法、装置及动画脚本的框架 |
CN110018889B (zh) * | 2018-01-10 | 2021-06-15 | 武汉斗鱼网络科技有限公司 | 动画队列的排队方法、存储介质、设备及系统 |
CN108287742B (zh) * | 2018-01-10 | 2020-08-04 | 武汉斗鱼网络科技有限公司 | 一种实现浮层动画的方法、存储介质、电子设备和系统 |
US11550601B2 (en) * | 2018-06-03 | 2023-01-10 | Apple Inc. | Framework providing application programming interface for user interfaces and animation |
CN109064531B (zh) * | 2018-08-01 | 2023-10-20 | 武汉斗鱼网络科技有限公司 | Android动画执行方法、装置、终端及可读介质 |
CN110007907B (zh) * | 2019-01-04 | 2022-03-25 | 阿里巴巴集团控股有限公司 | 一种动画执行方法及装置 |
CN112328336A (zh) * | 2019-07-18 | 2021-02-05 | 阿里巴巴集团控股有限公司 | 控制方法、控制装置、计算设备和存储介质 |
US11295504B1 (en) * | 2019-08-01 | 2022-04-05 | Meta Platforms, Inc. | Systems and methods for dynamic digital animation |
CN112667942A (zh) * | 2019-10-16 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置及介质 |
CN115220621A (zh) * | 2021-04-20 | 2022-10-21 | 华为技术有限公司 | 图形界面显示方法、电子设备、介质以及程序产品 |
CN117934973B (zh) * | 2024-03-21 | 2024-06-18 | 深圳市瀚晖威视科技有限公司 | 智能摄像机图像处理方法、装置、设备及存储介质 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US632964A (en) * | 1898-04-29 | 1899-09-12 | Harry M Dumas | Electric-call system. |
US5261041A (en) * | 1990-12-28 | 1993-11-09 | Apple Computer, Inc. | Computer controlled animation system based on definitional animated objects and methods of manipulating same |
US5689618A (en) * | 1991-02-19 | 1997-11-18 | Bright Star Technology, Inc. | Advanced tools for speech synchronized animation |
US5416899A (en) * | 1992-01-13 | 1995-05-16 | Massachusetts Institute Of Technology | Memory based method and apparatus for computer graphics |
JPH06149757A (ja) * | 1992-11-10 | 1994-05-31 | Hitachi Ltd | 並列処理装置 |
US5537641A (en) * | 1993-11-24 | 1996-07-16 | University Of Central Florida | 3D realtime fluid animation by Navier-Stokes equations |
JP3214776B2 (ja) * | 1994-04-13 | 2001-10-02 | 株式会社東芝 | 仮想環境表示装置および方法 |
US5636340A (en) | 1994-11-03 | 1997-06-03 | Microsoft Corporation | System and method for special effects for text objects |
EP0712097A2 (en) * | 1994-11-10 | 1996-05-15 | Matsushita Electric Industrial Co., Ltd. | Method and system for manipulating motion units for computer articulated figure animation |
US5864342A (en) * | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US5764241A (en) * | 1995-11-30 | 1998-06-09 | Microsoft Corporation | Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior |
US5836340A (en) * | 1996-01-19 | 1998-11-17 | A. Y. Mcdonald Mfg. Co. | Auxiliary gas connection for meter sets |
AU718608B2 (en) * | 1996-03-15 | 2000-04-20 | Gizmoz Israel (2002) Ltd. | Programmable computer graphic objects |
US6414684B1 (en) * | 1996-04-25 | 2002-07-02 | Matsushita Electric Industrial Co., Ltd. | Method for communicating and generating computer graphics animation data, and recording media |
US5867175A (en) * | 1996-05-24 | 1999-02-02 | Microsoft Corporation | Method and apparatus for scriping animation |
US6061067A (en) * | 1996-08-02 | 2000-05-09 | Autodesk, Inc. | Applying modifiers to objects based on the types of the objects |
US6121961A (en) * | 1996-08-06 | 2000-09-19 | Feldman; Bernard | String addressing of passive matrix displays |
US5946002A (en) * | 1997-02-14 | 1999-08-31 | Novell, Inc. | Method and system for image animation |
US5877777A (en) * | 1997-04-07 | 1999-03-02 | Colwell; Tyler G. | Fluid dynamics animation system and method |
US6057833A (en) * | 1997-04-07 | 2000-05-02 | Shoreline Studios | Method and apparatus for providing real time enhancements and animations over a video image |
US6121981A (en) | 1997-05-19 | 2000-09-19 | Microsoft Corporation | Method and system for generating arbitrary-shaped animation in the user interface of a computer |
US5983190A (en) * | 1997-05-19 | 1999-11-09 | Microsoft Corporation | Client server animation system for managing interactive user interface characters |
US5920326A (en) * | 1997-05-30 | 1999-07-06 | Hewlett Packard Company | Caching and coherency control of multiple geometry accelerators in a computer graphics system |
US6147692A (en) * | 1997-06-25 | 2000-11-14 | Haptek, Inc. | Method and apparatus for controlling transformation of two and three-dimensional images |
US6222537B1 (en) * | 1997-07-29 | 2001-04-24 | International Business Machines Corporation | User interface controls for a computer system |
US6433784B1 (en) * | 1998-02-26 | 2002-08-13 | Learn2 Corporation | System and method for automatic animation generation |
US6067096A (en) * | 1998-03-04 | 2000-05-23 | Nagle; John | Method and system for generating realistic collisions in graphical simulations |
US6256048B1 (en) * | 1998-03-31 | 2001-07-03 | Adobe Systems Incorporated | Two-dimensional virtual camera |
US6266053B1 (en) * | 1998-04-03 | 2001-07-24 | Synapix, Inc. | Time inheritance scene graph for representation of media content |
US6232988B1 (en) * | 1998-04-21 | 2001-05-15 | Thingworld.Com, Llc | Systems and methods for converting a component in an animation to an interactive object |
US6388668B1 (en) * | 1998-07-20 | 2002-05-14 | Microsoft Corporation | Functional animation including sprite tree generator and interpreter |
US6326984B1 (en) * | 1998-11-03 | 2001-12-04 | Ati International Srl | Method and apparatus for storing and displaying video image data in a video graphics system |
US6512522B1 (en) * | 1999-04-15 | 2003-01-28 | Avid Technology, Inc. | Animation of three-dimensional characters along a path for motion video sequences |
US6563503B1 (en) * | 1999-05-07 | 2003-05-13 | Nintendo Co., Ltd. | Object modeling for computer simulation and animation |
IL130337A0 (en) * | 1999-06-07 | 2000-06-01 | Tidex Systems Ltd | A method for achieving roaming capabilities and for performing interactive CGI implanting and computer games using the method |
US6522333B1 (en) * | 1999-10-08 | 2003-02-18 | Electronic Arts Inc. | Remote communication through visual representations |
US6546397B1 (en) * | 1999-12-02 | 2003-04-08 | Steven H. Rempell | Browser based web site generation tool and run time engine |
US6404438B1 (en) * | 1999-12-21 | 2002-06-11 | Electronic Arts, Inc. | Behavioral learning for a visual representation in a communication environment |
US6448971B1 (en) * | 2000-01-26 | 2002-09-10 | Creative Technology Ltd. | Audio driven texture and color deformations of computer generated graphics |
DE10007408A1 (de) * | 2000-02-18 | 2001-09-06 | Infineon Technologies Ag | Analog/Digital-Wandlerschaltungsanordnung |
US6600491B1 (en) * | 2000-05-30 | 2003-07-29 | Microsoft Corporation | Video-based rendering with user-controlled movement |
US6611268B1 (en) * | 2000-05-30 | 2003-08-26 | Microsoft Corporation | System and process for generating 3D video textures using video-based rendering techniques |
CN1144160C (zh) * | 2001-02-15 | 2004-03-31 | 英业达股份有限公司 | 动画制作的方法和系统 |
US6768486B1 (en) * | 2001-05-18 | 2004-07-27 | Autodesk, Inc. | Modifying subobjects of geometry objects based on per-subobject objects |
US7064766B2 (en) * | 2001-10-18 | 2006-06-20 | Microsoft Corporation | Intelligent caching data structure for immediate mode graphics |
US6937950B2 (en) * | 2002-12-26 | 2005-08-30 | International Business Machines Corporation | Animated graphical object notification system |
US20040189699A1 (en) * | 2003-03-24 | 2004-09-30 | Oren Dobronsky | System and method for customizing electronic messages |
JP2010249939A (ja) * | 2009-04-13 | 2010-11-04 | Sony Corp | ノイズ低減装置、ノイズ判定方法 |
-
2003
- 2003-05-09 US US10/434,718 patent/US7173623B2/en not_active Expired - Lifetime
- 2003-05-15 WO PCT/US2003/015988 patent/WO2004104938A1/en active Application Filing
- 2003-05-15 KR KR1020047010340A patent/KR100938036B1/ko not_active IP Right Cessation
- 2003-05-15 BR BR0306442-5A patent/BR0306442A/pt not_active Application Discontinuation
- 2003-05-15 AU AU2003248542A patent/AU2003248542B2/en not_active Ceased
- 2003-05-15 JP JP2004569234A patent/JP4268586B2/ja not_active Expired - Fee Related
- 2003-05-15 ZA ZA200404107A patent/ZA200404107B/en unknown
- 2003-05-15 CN CNB038018721A patent/CN100361162C/zh not_active Expired - Fee Related
- 2003-05-15 RU RU2004119847/09A patent/RU2327218C2/ru not_active IP Right Cessation
- 2003-05-15 EP EP03808238.4A patent/EP1639555A4/en not_active Ceased
- 2003-05-15 MX MXPA04006333A patent/MXPA04006333A/es active IP Right Grant
- 2003-05-15 CA CA2461516A patent/CA2461516C/en not_active Expired - Fee Related
- 2003-10-24 US US10/693,830 patent/US7262775B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7262775B2 (en) | 2007-08-28 |
JP2006526181A (ja) | 2006-11-16 |
CN100361162C (zh) | 2008-01-09 |
ZA200404107B (en) | 2005-09-09 |
RU2327218C2 (ru) | 2008-06-20 |
KR20060006990A (ko) | 2006-01-23 |
US20040222992A1 (en) | 2004-11-11 |
BR0306442A (pt) | 2005-02-15 |
WO2004104938A8 (en) | 2005-08-18 |
CA2461516C (en) | 2012-08-21 |
WO2004104938A1 (en) | 2004-12-02 |
AU2003248542A1 (en) | 2004-12-13 |
US7173623B2 (en) | 2007-02-06 |
AU2003248542B2 (en) | 2009-11-12 |
CN1689046A (zh) | 2005-10-26 |
RU2004119847A (ru) | 2005-03-27 |
KR100938036B1 (ko) | 2010-01-21 |
US20040233201A1 (en) | 2004-11-25 |
EP1639555A4 (en) | 2016-01-27 |
CA2461516A1 (en) | 2004-11-09 |
EP1639555A1 (en) | 2006-03-29 |
JP4268586B2 (ja) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
MXPA04006333A (es) | Sistema que soporta la animacion de elementos de despliegue graficos a traves de instancias de objetos de animacion. | |
KR101143095B1 (ko) | 컴퓨터 디스플레이 출력시의 애니메이션 및 매체 조정 | |
RU2420806C2 (ru) | Плавные переходы между анимациями | |
US8446415B2 (en) | Framework for graphics animation and compositing operations | |
US9576388B2 (en) | Framework for graphics animation and compositing operations | |
US20080303827A1 (en) | Methods and Systems for Animating Displayed Representations of Data Items | |
JP2004506280A (ja) | イメージおよびイメージ遷移の表示 | |
US20080303826A1 (en) | Methods and Systems for Animating Displayed Representations of Data Items | |
Kim et al. | Scene Graph for Dynamic Virtual Environment: Spangraph | |
Vanderdonckt | Animated transitions for empowering interactive information systems | |
Vodislav | HandMove: a system for creating animated user interface components by direct manipulation | |
Tang | EMO: Elastic manipulation objects | |
Fisher et al. | Animation in a demonstrational interface builder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG | Grant or registration |