Создание и выполнение режима анимации для графического пользовательского интерфейса

Иллюстрации

Показать все

Изобретение относится к компонентам и подсистемам вычислительной системы для поддержания и обеспечения представлений графического пользовательского интерфейса. Изобретение обеспечивает более эффективное и гибкое выполнение режимов анимации в изображениях графического пользовательского интерфейса. Раскрыта система анимации графического изображения, поддерживающая изменение во времени значений свойств элементов изображения для элементов внутри графического изображения. Система анимации использует структуру изображения для поддержания набора элементов изображения. Элементы изображения включают в себя значение переменного свойства. Система анимации также использует систему свойств, поддерживающую свойства, связанные с элементами изображения, поддерживаемыми структурой изображения. Свойства включают в себя динамические свойства, которые могут изменяться во времени и, следовательно, воздействовать на представление соответствующего элемента на графическом изображении. Система анимации содержит классы анимации, из которых создаются экземпляры объектов анимации, связываемых со свойством элемента изображения во время выполнения. Экземпляры объекта анимации обеспечивают изменяемые во времени значения, которые воздействуют на значения, присваиваемые динамическим свойствам. 4 н. и 34 з.п. ф-лы, 7 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение, в общем, относится к вычислительным устройствам. Более конкретно, настоящее изобретение относится к компонентам и подсистемам вычислительной системы для поддержания и обеспечения представлений графического пользовательского интерфейса (GUI), управляемых данными и управляющей входной информацией из операционной системы и/или приложений.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

По своей сущности графические пользовательские интерфейсы являются высоко визуализированными. Обычный интерактивный сеанс, охватывающий пользователя и графический пользовательский интерфейс, включает в себя несколько событий выполнения пользователем действия в отношении отображенного элемента (например, перемещение указателя и выбор пиктограммы или управляющего элемента) для запуска операции и последующего визуального наблюдения последствий операции. Один способ привлечения внимания пользователя к конкретным элементам на графическом пользовательском интерфейсе для указания активного или измененного состояния осуществляется посредством анимации графического элемента. Анимация, как здесь подразумевается, включает в себя изменение представления или перемещение графического элемента изображения (например, пиктограммы, управляющего элемента, окна и т.д.) посредством последовательности пошаговых изменений, применяемых к элементу изображения в продолжение периода времени. Однако анимация также включает в себя изменения во времени для элементов, не отображаемых визуально. Следовательно, анимация, как здесь определено, включает в себя как визуальную анимацию (т.е. изменение значения параметра видимого изображения), так и не визуальную анимацию (т.е. изменение значения параметра во времени без воздействия на элемент видимого изображения).

Анимация потенциально может улучшить практичность и эстетическую привлекательность вычислительных систем и приложений. Пользовательские интерфейсы, и особенно графические пользовательские интерфейсы, играют важную роль во взаимодействиях «компьютер/пользователь». Анимация улучшает осуществление взаимодействия «компьютер/пользователь», обеспечивая дополнительный тип информации или способ представления пользователю состояния компьютерной программы или ее компонента. Например, вместо того, чтобы привести просто к исчезновению или немедленному изменению выбранного элемента, анимация обеспечивает возможность отображения последовательности изменений, которая, в комбинации с понятным контекстом, информирует пользователя о том, что произошло (например, удаленный файл плавно перемещается в «корзину»). Кроме того, многие согласятся с тем, что анимация делает взаимодействие с вычислительной системой более интересным и более эффективно привлекает внимание пользователей. Дополнительно, анимация также может автоматизировать изменения значений свойств. В частности, приложение режима пользователя устанавливает ручные таймеры и затем изменяет значение, реагируя на указанные таймеры.

Вероятно, анимация не включена во многие пользовательские интерфейсы, где она была бы полезной для пользователя. Одной простой причиной является стоимость анимации элементов пользовательского интерфейса. Анимация, в основном, является трудоемкой/объемной задачей. Рассматривая подход стоимости/выгоды для реализации анимации в графических пользовательских интерфейсах, выгода от включения анимации должна превышать стоимость. Из-за относительно высокой стоимости программирования анимации в настоящее время многие приложения, для которых была бы выгодна анимация, не анимированы из-за относительно высокой стоимости реализации.

Один способ уменьшения стоимости анимации состоит в том, чтобы многократно использовать программирование анимации для нескольких различных применений. Однако код анимации, в основном, не используется многократно. Вместо этого, код анимации для одного применения (приложения) полностью программируется непосредственно внутри приложений при разработке с использованием инструментальных средств программирования. Режим анимации определен явно внутри кода откомпилированной программы. Во время выполнения при прогоне анимация выполняется просто посредством исполнения предварительно запрограммированных сегментов кода. Дополнительно к тому, что анимация является трудоемким процессом, включение анимации в программу потенциально приводит к чрезмерно большой программе из-за детализированных данных и инструкций, используемых для выполнения требуемых режимов анимации в элементах изображения.

Усилия по улучшению программируемости анимации в пользовательских интерфейсах привели к разработке и обеспечению нередактируемых/монолитных последовательностей сценариев (скриптов) анимаций, из которых вызываются выполняемые сегменты сценария для обеспечения требуемого режима анимации. Такие известные способы программирования анимации, основанные, например на стандарте SMIL (язык синхронизированной интеграции мультимедиа), включают в себя кадрирование изображений. Способы кадрирования изображений основаны на обращении к конкретным сегментам монолитных, нередактируемых сценариев анимации.

Известный подход кадрирования изображений проявляет относительный недостаток гибкости по сравнению с программированием новых режимов анимации в графическом пользовательском интерфейсе. Сценарий кадрирования изображений содержит откомпилированную нередактируемую последовательность инструкций анимации, которая формирует морф (наименьшую неделимую значащую часть) элемента изображения (или композиции элементов) между обозначенной начальной и конечной точкой. Известный подход анимации кадрирования изображений, состоящий в выборе двух точек в последовательности анимации и затем в выполнении программного сценария между указанными двумя точками, помогает программистам, добивающимся реализации режима анимации, воплощенного внутри предварительно созданных/откомпилированных сценариев анимации. Однако подход кадрирования изображений ограничивает рамки поддерживаемых анимаций линейными последовательностями, определенными существующим базовым сценарием анимации. Разработке базового сценария анимации препятствует необходимость идентификации и кодирования всех поддерживаемых режимов анимации перед передачей сценариев анимации пользователям/разработчикам. В продолжение срока использования сценария анимации может возникнуть много вариантов, где в сценарии не содержится требуемый режим анимации. Однако сценарий недоступен для редактирования пользователям/разработчикам и, следовательно, не может использоваться для выполнения нового требуемого режима анимации, который не был закодирован предварительно в откомпилированном сценарии анимации.

Следовательно, существует потребность в более эффективном, гибком и менее дорогостоящем способе выполнения интересных информативных и значимых режимов анимации в изображениях графического пользовательского интерфейса.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Система анимации, описанная в качестве примера и заявленная в приведенной ниже формуле изобретения, обеспечивает основу для определения, создания и выполнения режима анимации как для элементов изображения графического пользовательского интерфейса, так и значений невизуальных параметров. Режим анимации при применении к элементу приводит к изменению значения, соответствующего свойству, в продолжение времени, когда режим анимации является активным.

Система анимации включена в систему, использующую структуру изображения для поддержания набора элементов, соответствующего объектам, изображенным внутри сцены в виде окна на экране дисплея графического пользовательского интерфейса вычислительной системы. Элементы содержат значение переменного свойства, воздействующее на характеристику изображения элемента. Примерами такого переменного свойства являются позиция, размеры, цвет, непрозрачность и т.д.

Система анимации также использует систему свойств. Система свойств поддерживает свойства, соответствующие элементам, поддерживаемым структурой изображения. Система свойств поддерживает динамические свойства, которые могут изменяться во времени.

Система анимации также содержит классы анимации, которые задают конкретные режимы анимации, выполняемые по базовому значению. Экземпляры объектов анимации создаются из классов анимации. Такие экземпляры объектов анимации обеспечивают значения, изменяемые во времени, которые воздействуют на значения, присваиваемые динамическим свойствам. Такие объекты анимации создаются и присоединяются к свойствам, поддерживаемым системой свойств, по предписанию приложения, которое управляет изображением, содержащим элементы, изменяемые во времени, согласно соответствующим объектам анимации.

ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ

В то время как признаки настоящего изобретения подробно изложены в приложенной формуле изобретения, изобретение и его преимущества будут более понятны из последующего подробного описания, рассматриваемого совместно с приложенными чертежами.

Фиг.1 - структурная схема, иллюстрирующая вычислительную систему, в которой может быть реализован вариант осуществления изобретения.

Фиг.2 - возможное схематическое высокоуровневое представление, иллюстрирующее первичные компоненты архитектуры управления графикой, содержащей систему анимации для поддержания анимации графических элементов изображения.

Фиг.3 - блок-схема алгоритма, резюмирующая иллюстративную последовательность повторяемых этапов, выполняемых в системе, воплощающей настоящее изобретение, для поддержания/воспроизведения анимированного графического пользовательского интерфейса.

Фиг.4 - возможное определение классов анимации для выполнения анимации в отношении определенного свойства элемента.

Фиг.5 - итоговый набор возможных типов конструктора анимации для анимации свойства элемента.

Фиг.6 - итоговый возможный класс коллекции анимаций для архитектуры анимации, воплощающей настоящее изобретение.

Фиг.7 - итоговый возможный класс динамической коллекции анимаций для архитектуры анимации, воплощающей настоящее изобретение.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

Описана архитектура графического пользовательского интерфейса, которая содержит систему анимации, систему свойств и структуру организации элементов изображения. Эти компоненты, в комбинации, поддерживают основанную на свойствах анимацию элементов изображения графического пользовательского интерфейса и даже не изображаемых величин. Раскрытая архитектура анимации содержит систему анимации, включающую в себя классы анимации, интерфейсы и коллекции, способствующие созданию и отслеживанию экземпляров анимации, которые присоединяются к нескольким графическим изображаемым (и не изображаемым) элементам (например, пиктограммы, диалоговые окна, полосы прокрутки, и т.д.) для получения требуемого режима анимации элементов. Анимация элементов изображения достигается посредством изменения значений свойств элементов изображения. В варианте осуществления изобретения управление изменениями значения свойств осуществляется объектом анимации, экземпляр которого из класса анимации и который присоединен к свойству.

В варианте осуществления изобретения графическая анимация достигается посредством связывания коллекции анимаций с операцией воспроизведения для конкретного элемента внутри дерева элементов. Когда анимированный элемент первоначально нарисован, система воспроизведения обновляет состояние изображения элемента в интервалы времени в соответствии с режимом анимации, определенным компонентами объектов анимации, экземпляры которых созданы из заданных классов анимации.

В варианте осуществления изобретения анимация определена на нескольких уровнях в системе графического изображения, имеющей разные циклы обновления. Очевидные, легко вычисляемые, анимации обновляются с относительно высокой частотой обновления. Другие, более сложные анимации, например такие, которые воздействуют на другие объекты графического изображения, обновляются с относительно низкой частотой обновления.

При рассмотрении в целом, описанная здесь архитектура анимации обеспечивает достаточно гибкую платформу для выполнения нескольких новых режимов анимации и присоединения новых режимов к элементам изображения для создания новых и весьма привлекательных интерфейсов анимированного изображения.

Фиг.1 иллюстрирует возможный вариант соответствующей операционной среды 100 для реализации архитектуры анимации, воплощающей настоящее изобретение. Операционная среда 100 является только одним возможным вариантом подходящей операционной среды и не предназначена для наложения каких-либо ограничений на область использования или функциональные возможности. Другие известные вычислительные системы, среды и/или конфигурации, которые подходят для использования в связи с настоящим изобретением, включают в себя, например, персональные компьютеры, компьютеры-серверы, портативные вычислительные устройства, переносные вычислительные устройства, многопроцессорные системы, системы, основанные на микропроцессорах, сетевые персональные компьютеры (PC), миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, содержащие любые из вышеупомянутых систем, или т.д.

Изобретение описано в общем контексте ряда этапов и процессов, выполняемых посредством машиноисполняемых команд, таких как программные модули, выполняемые компьютером. По существу, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., выполняющие конкретные задачи или реализующие определенные абстрактные типы данных. Хотя возможный вариант осуществления описан в отношении процессов, выполняемых локально в одной вычислительной системе, изобретение может быть включено в узлы сети, функционирующие в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, связанными через сеть связи. В распределенной вычислительной среде программные модули, в основном, размещены как в локальных, так и в удаленных компьютерных носителях информации, включая запоминающие устройства.

Согласно фиг.1 иллюстративная система для реализации изобретения содержит вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут содержать, но не в ограничительном смысле, процессор 120, системную память 130 и системную шину 121, соединяющую различные компоненты системы, включая системную память, с процессором 120. Системная шина 121 может относится к любому из нескольких типов структур шины, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующие любую из множества архитектур шины. В качестве примера, но не ограничения, такие архитектуры включают в себя шину архитектуры, соответствующей промышленному стандарту (ISA), шину микроканальной архитектуры (MCA), усовершенствованную шину ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI) (также известную как мезонинная шина), и т.д.

Компьютер 110 обычно содержит несколько разнообразных машиночитаемых носителей информации. Машиночитаемые носители информации могут быть любыми доступными носителями информации, к которым может осуществить доступ компьютер 110, и включают в себя как энергозависимые, так и энергонезависимые носители информации, как съемные, так и несъемные носители информации. В качестве примера, но не ограничения, машиночитаемый носитель информации, может включать в себя компьютерный носитель информации и среду передачи данных. Компьютерные носители информации включают в себя как энергозависимые, так и энергонезависимые, как съемные, так и несъемные носители информации, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерный носитель информации включает в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ, RAM), постоянное запоминающее устройство (ПЗУ, ROM), электрически стираемое программируемое ПЗУ (СППЗУ, EEPROM), флэш-память или память, использующую другую технологию, ПЗУ на компакт-диске (CD-ROM), универсальные цифровые диски (DVD) или другой оптический дисковый накопитель, магнитные кассеты, магнитную ленту, магнитный дисковый накопитель или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться для хранения необходимой информации и к которому может осуществить доступ компьютер 110. Среда передачи данных обычно воплощает машиночитаемые команды, структуры данных, программные модули или другие данные в сигнале, модулированном данными, например несущей или другом механизме переноса информации, и включает в себя любую среду доставки информации. Термин «сигнал, модулированный данными» означает сигнал, который имеет одну или более характеристик, установленных или измененных таким образом, чтобы обеспечить кодирование информации в сигнале. В качестве примера, но не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или прямое кабельное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другие беспроводные среды передачи данных. Комбинации любых упомянутых выше сред также должны быть включены в диапазон машиночитаемых носителей информации.

Системная память 130 включает в себя компьютерный носитель информации в виде энергозависимой и/или энергонезависимой памяти, например постоянное запоминающее устройство (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система 133 ввода/вывода BIOS, содержащая базовые процедуры, способствующие передаче информации между элементами внутри компьютера 110, например, при запуске, в основном, хранится в ПЗУ 131. ОЗУ 132, в основном, содержит данные и/или программные модули, к которым можно осуществить доступ немедленно, и/или которыми в текущее время оперирует процессор 120. В качестве примера, но не ограничения, фиг.1 изображает операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.

Компьютер 110 также может содержать другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. Исключительно в качестве примера, фиг.1 изображает накопитель 141 на жестких магнитных дисках, осуществляющий считывание с несъемного, энергонезависимого магнитного носителя информации или запись на него, дисковод 151 для магнитного диска, который осуществляет считывание со съемного энергонезависимого магнитного диска 152 или запись на него, и дисковод 155 для оптического диска, который осуществляет считывание со съемного энергонезависимого оптического диска 156, например компакт-диска или другого оптического носителя информации, или запись на него. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации, которые могут быть использованы в иллюстративной операционной среде, включают в себя кассеты на магнитной ленте, карточки флэш-памяти, универсальные цифровые диски, цифровую видеомагнитофонную ленту, твердотельное ОЗУ, твердотельное ПЗУ и т.д. Накопитель 141 на жестких магнитных дисках обычно подсоединен к системной шине 121 посредством интерфейса несъемной памяти, например интерфейса 140, а дисковод 151 для магнитного диска и дисковод 155 для оптического диска, в основном, подсоединены к системной шине 121 посредством интерфейса съемной памяти, например интерфейса 150.

Дисководы и соответствующие им компьютерные носители информации, описанные выше и изображенные на фиг.1, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 110. Например, на фиг.1 накопитель 141 на жестких магнитных дисках изображен как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Следует отметить, что эти компоненты могут быть идентичными операционной системе 134, прикладным программам 135, другим программным модулям 136 и данным 137 программ, или отличаться от них. Здесь операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ даны другие ссылочные позиции для пояснения, что, как минимум, они являются другими копиями. Пользователь может осуществлять ввод команд и информации в компьютер 110 посредством устройств ввода, таких как клавиатура 162 и указательное устройство 161, обычно определяемое как мышь, шаровой манипулятор или сенсорная панель. В число других устройств ввода (не изображены) могут входить микрофон, джойстик, игровая панель, спутниковая антенна, сканер и т.д. Часто эти и другие устройства ввода соединены с процессором 120 посредством интерфейса 160 пользовательского ввода, подсоединенного к системной шине 121, но они могут быть соединены с процессором посредством другого интерфейса и других структур шины, таких как параллельный порт, игровой порт или например универсальная последовательная шина (USB). Также к системной шине 121 посредством интерфейса, такого как видеоинтерфейс 190, может быть подсоединен монитор 191 или другой тип устройства отображения. В дополнение к монитору 191 компьютеры могут также содержать другие периферийные устройства вывода, например громкоговорители 197 и принтер 196, которые могут быть подсоединены посредством периферийного интерфейса 195 вывода.

Компьютер 110 может функционировать в сетевой среде, используя логические соединения с одним или большим количеством удаленных компьютеров, например удаленным компьютером 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим узлом общей сети, и обычно содержит многие или все элементы, описанные выше в отношении компьютера 110, хотя фиг.1 изображает только запоминающее устройство 181. Логические соединения, иллюстрируемые фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать другие сети. Такие сетевые среды часто используются в офисах, масштаба предприятия сетях, интрасетях и в сети Интернет.

При использовании в сетевой среде LAN компьютер 110 соединен с LAN 171 посредством сетевого интерфейса или адаптера 170. При использовании в сетевой среде WAN компьютер 110 обычно содержит модем 172 или другое средство для установления связи через WAN 173, такую как Интернет. Модем 172, который может быть внутренним или внешним, может быть подсоединен к системной шине 121 посредством интерфейса 160 пользовательского ввода или другого соответствующего механизма. В сетевой среде программные модули, показанные в отношении компьютера 110, или их части, могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, фиг.1 изображает удаленные прикладные программы 185 как размещенные на запоминающем устройстве 181. Следует понимать, что изображенные сетевые соединения являются иллюстративным вариантом, и могут быть использованы другие средства установления линии связи между компьютерами.

Фиг.2 - схематическая высокоуровневая диаграмма, определяющая компоненты архитектуры графического изображения, воплощающей настоящее изобретение и содержащей совокупность взаимодействующих функциональных компонентов системы анимации. Для описания возможного варианта осуществления настоящего изобретения архитектура графического изображения, иллюстрируемая фиг.2, разделена на совокупность функциональных компонентов. Настоящее изобретение не ограничено иллюстрируемой конфигурацией компонентов. Напротив, функциональные возможности описанных ниже компонентов группируются по-разному в альтернативных вариантах осуществления изобретения.

Система анимации содержит несколько подкомпонентов, которые, в совокупности, обеспечивают анимацию объектов графического изображения (а также невизуальных параметров) на основе команд высокого уровня, выдаваемых приложением 200. Приложение 200 может быть любым приложением или элементом управления, постоянно размещенным либо внутри операционной системы, либо вне ее. Описанная здесь инфраструктура анимации в значительной степени обеспечивает возможность передачи функций (делегирования), в значительной степени, программирования и выполнения анимации для обобщенных компонентов анимации. В варианте осуществления изобретения приложение 200 вместо вычисления обновленных растров выдает системе анимации команды, задающие/определяющие анимацию для одного или большего количества объектов изображения.

В соответствии с командами приложения 200 система анимации формирует объекты анимации. Объекты анимации, после создания их экземпляров, могут быть связаны с деревом 202 элементов. Дерево 202 элементов создается в ответ на события, формируемые приложением 200. Возможные примеры таких событий включают в себя запуск приложения 200, или некоторую другую выполняемую команду, приводящую к созданию нового представления. После этого приложение создает новые элементы в дереве 202 элементов и позже удаляет эти элементы.

Дерево 202 элементов содержит иерархически организованный набор элементов. В варианте осуществления изобретения дерево 202 элементов структурно определяет документ. Каждый элемент описывает объект, который в большинстве случаев соответствует визуальному изображению, отображаемому, например, на графическом пользовательском интерфейсе. Возможные примеры элементов включают в себя: кнопки, таблицы, ячейки таблицы, средства управления списком, кадры, изображения и параграфы (плавающие панели). Элементы в дереве 202 элементов, в основном, содержат одно или большее количество свойств (например, цвет, высота, ширина, позиция, прозрачность, и т.д.). Значения, присваиваемые свойствам элемента, способствуют определению состояния изображения элемента. В варианте осуществления изобретения объекты анимации назначаются одной или большему количеству комбинаций элемент/свойство. После этого экземпляры объекта анимации выполняются для воспроизведения режима анимации на свойстве элемента в соответствии с временной шкалой, с которой связан каждый из экземпляров объекта анимации.

"ВРЕМЕННЫЕ ШКАЛЫ"

Временные характеристики и временные шкалы управляют описанной здесь системой анимации. Аспект временных характеристик описанной здесь системы анимации является модификацией спецификации W3C Языка Синхронизированной Интеграции Мультимедиа (SMIL 2.0). Каждый объект анимации после создания и перед выполнением связывают с временной шкалой (например, определение временной последовательности), которая управляет протеканием последовательности изменений, соответствующих определенному режиму объекта анимации. Дополнительно, вышеупомянутая временная шкала определяет только локальную/относительную временную последовательность режима анимации (например, длительность анимации, повторения, ускорения и т.д.). Следовательно, объект анимации не может быть выполнен до назначения этому объекту анимации "родительской" временной шкалы (либо непосредственно, либо косвенно посредством другого объекта). Следовательно, для выполнения объекта анимации относительная временная шкала присоединяется к определению "родительских" временных характеристик ("родительской временной шкалы"), которая связывает определение относительных временных характеристик объекта анимации с фактическим временем выполнения, определяемым родительской временной шкалой. Следовательно, родительская временная шкала не управляет режимом анимации объекта анимации. Вместо этого родительская временная шкала управляет внешним режимом, например так, как при фактическом начале анимации. Временные шкалы поддерживаются в иерархической структуре дерева временных характеристик, и отдельные временные шкалы имеют атрибуты, которые определяют их режим относительно родительской временной шкалы. Временная шкала верхнего уровня определяется относительно корневой временной шкалы (например, документ, страница, кадр и т.д.).

Существует несколько способов для связывания родительской временной шкалы с объектом анимации, который имеет собственную внутреннюю временную шкалу, определяющую локальный режим временных характеристик анимации. Например, родительская временная шкала является определением временных характеристик, к которому присоединен объект анимации. В одном иллюстративном способе обозначения временной шкалы сущность (например, приложение), запрашивающая создание объекта анимации, устанавливает родительскую временную шкалу, к которой присоединяется временная шкала для объекта анимации. В этом случае, временная шкала объекта анимации идентифицирует родительскую временную шкалу во время создания, и созданный объект анимации является фактическим исполняемым объектом анимации (в противоположность копии), используемым одной или большим количеством комбинаций элементов/свойств, с которыми с этого момента связан объект анимации.

В другом иллюстративном способе обозначения временной шкалы для объекта анимации создается частично полный класс объекта анимации, который включает в себя собственную временную шкалу, но не включает родительскую временную шкалу. Этот неполный вид определения объекта анимации (отсутствие родительской временной шкалы) определен здесь, как "шаблон анимации". Шаблоны анимации не выполняются, вместо этого создаются копии (или клоны) шаблонов анимации, и каждому из новых экземпляров анимации назначается родительская временная шкала анимации элемента, к которому присоединяется новая анимация. В таких экземплярах родительская временная шкала клонированного объекта анимации является родительской временной шкалой, устанавливаемой элементом, к которому присоединен клонированный объект анимации. Отсутствие определения временных характеристик конкретной родительской временной шкалы обеспечивает возможность создания нескольких клонов из одного шаблона анимации, и каждый "клонированный" объект анимации заимствует специфические для элемента временные характеристики выполнения анимации (например, запуск, пауза и т.д.), определяемые элементом, к которому он присоединяется. Так как представленная система поддерживает более позднее назначение родительской временной шкалы, объекты анимации, созданные для размещения на дереве 202 элементов, не требуют явного назначения родительской временной шкалы в момент создания. Однако для обеспечения возможности выполнения анимации такая информация о временных характеристиках пополняется.

В виде альтернативного варианта, приложение 200 передает объекты анимации непосредственно на уровень 204 интеграции мультимедиа (MIL) через интерфейс 206 уровня интеграции мультимедиа (MIL). MIL 204 описан, например, в заявке на патент США с серийным номером 10/184795, поданной 27 июня 2002 года, озаглавленной "Multiple-Level Graphics Processing System and Method", Beda и другие, содержание которой включено в настоящее описание посредством ссылки, включая содержание любых содержащихся в ней ссылок. В варианте осуществления изобретения объекты анимации, переданные непосредственно из приложения 200 на интерфейс 206 MIL, требуют явного назначения родительской временной шкалы, иначе объект анимации не выполняется.

MIL 204 включает в себя набор компонентов воспроизведения объекта графического изображения и компонентов управления, доступ к которым осуществляется через интерфейс 206 MIL. Интерфейс 206 MIL описан, например, в заявке на патент США с серийным номером 10/184796, поданной 27 июня 2002 года и озаглавленной "Generic Parameterization for a Scene Graph", Beda и другие, содержание которой включено в настоящее описание посредством ссылки, включая содержание любых содержащихся в ней ссылок. Интерфейс 206 MIL является интерфейсом, на котором основываются приложение 200 или система 208 средства представления (презентатора) (описанная ниже) для построения низкоуровневого описания для кадра изображения приложения. Интерфейс 206 MIL включает в себя набор вызовов методов, таких как: DrawLine(...), PushTransform(...) и PopTransform(...). Вызовы, обслуживаемые интерфейсом 206 MIL, описывают сцену/документ/или графический пользовательский интерфейс.

Описанное здесь изобретение обеспечивает инфраструктуру для определения анимации для графических объектов, а также любых значений параметров, которые изменяются во времени. Следовательно, фактическая анимация может быть выполнена любым из нескольких средств воспроизведения графики, включая, например, упомянутый здесь MIL 204.

Элементы, поддерживаемые деревом 202 элементов, представляют графические элементы высокого уровня (например, кнопки, полосы прокрутки, и т.д.). В варианте осуществления изобретения такие графические объекты описаны на высоком уровне, который не пригоден для непосредственного использования компонентами MIL 204. Следовательно, презентатор внутри системы 208 презентатора компилирует/транслируетсоставляющие дерева 202 элементов, с которым связан этот презентатор, в визуальные элементы (например, строки, заполненные прямоугольники и т.д.), которые составляют элементы из дерева 202 элементов. Система 208 презентатора передает визуальные элементы в MIL 204 через интерфейс 206 MIL. Существует много способов реализации функциональных возможностей системы 208 презентатора. Возможный вариант осуществления системы 208 презентатора подробно описан в заявке на патент США с серийным номером 10/(серийный номер еще не присвоен), поданной 9 мая 2003 года (экспресс-почта EV 329734584 США) и озаглавленной "System For Hosting Graphical layout/Presentation Objects", Parikh и другие, содержание которой включено в настоящее описание посредством ссылки, включая содержание любых содержащихся в ней ссылок.

В конкретном варианте осуществления изобретения MIL 204 включает в себя дерево 210 визуальных элементов высокого уровня, которое может обрабатывать визуальные элементы, переданные в MIL 204 системой 208 презентатора через интерфейс 206 MIL. Дерево 210 визуальных элементов высокого уровня содержит структурированный набор примитивов (например, строк, прямоугольников, изображений и т.д.). Структурированный набор примитивов описывает одиночный кадр изображения для приложения. Дерево 210 визуальных элементов высокого уровня поддерживает класс анимаций, определяемых как "независимые анимации". Независимые анимации, которые описаны здесь ниже, для получения анимации не основываются на функции компоновки системы 208 презентатора.

Дерево 212 визуальных элементов низкого уровня потенциально является сжатой (уплотненной) версией дерева 210 визуальных элементов высокого уровня. Дерево 212 визуальных элементов низкого уровня сконфигурировано для быстрого воспроизведения и выполнения независимых анимаций, переданных дереву 212 визуальных элементов низкого уровня через дерево 210 визуальных элементов высокого уровня. Потенциально дерево 212 визуальных элементов низкого уровня между обновлениями его структуры выполняет несколько кадров, например, из дерева 210 визуальных элементов высокого уровня.

Дерево 212 визуальных элементов низкого уровня сконфигурировано для непосредственного взаимодействия с драйверами вывода. Драйвер 214 сетевой связи с удаленным устройством является объектом, соответствующим устройству, в котором приложение 200 воспроизводит выходные данные. Устройство потенциально является устройством, отличным от устройства, на котором выполняется приложение 200. В таком случае, приложение 200 передает свои визуальные выходные данные через сетевое соединение для отображения выходных данных пользователю приложения 200 на удаленном устройстве.

В качестве альтернативного варианта, дерево 212 визуальных элементов низкого уровня вопроизводит выходные данные драйверу 216 графического дисплея. Драйвер 216 графического дисплея обеспечивает передачу данных изображения кадра аппаратным средствам на локальном устройстве, которое отвечает за отображение кадра на выходном дисплее (на