Поделиться через


Работа с анимацией

В этом разделе рассматривается класс Open XML SDK для Office Animate и его связь со схемой PresentationML формата файла Open XML. Дополнительные сведения об общей структуре частей и элементов, составляющих документ PresentationML, см. в статье Структура документа PresentationML.

Анимация в PresentationML

В спецификации ISO/IEC 29500 (Возможно, на английском языке) приведено описание раздела анимации в рамках структуры документа PresentationML в Open XML:

В разделе "Animation" структуры PresentationML хранятся сведения о перемещении и связанные данные об объектах. Эта схема основывается на синтаксисе и понятиях SMIL (Synchronized Multimedia Integration Language), рекомендациях консорциума W3C по описанию мультимедийных презентаций с использованием XML. В схеме дано описание всех эффектов анимации, которые представлены на слайде, а также анимации, сопровождающей переход от слайда к слайду (переход слайдов). Анимация на слайде применяется на основе времени и включает эффекты анимации на объекте или тексте. Переходы слайдов, однако, не зависят от этого правила, и их появление всегда предшествует отображению любой другой анимации на слайде. Все элементы, описываемые в этой схеме, содержатся в XML-файле слайда. Более конкретно они описаны в элементах <transition/> и <timing/>, как показано далее:

<p:sld>  
    <p:cSld> … </p:cSld>  
    <p:clrMapOvr> … </p:clrMapOvr>  
    <p:transition> … </p:transition>  
    <p:timing> … </p:timing>  
</p:sld>

Анимация включает несколько типов поведения, наиболее распространенным из которых является тип поведения анимации, представленный элементом <anim/>. В спецификации ISO/IEC 29500 (Возможно, на английском языке) приведено описание элемента Open XML PresentationML <anim/>, используемого для представления основного типа поведения анимации в документе PresentationML:

Этот элемент является универсальным элементом анимации, который практически не требует семантического понимания анимируемого атрибута. Он может анимировать текст внутри фигуры или даже самой фигуры. [Пример. Попробуйте подчеркнуть текст в фигуре, изменив размер шрифта на 150 %. Элемент <anim/> следует использовать следующим образом:

<p:anim to="1.5" calcmode="lin" valueType="num">  
    <p:cBhvr override="childStyle">  
        <p:cTn id="1" dur="2000" fill="hold">  
        <p:tgtEl>  
            <p:spTgt spid="1">  
                <p:txEl>  
                    <p:charRg st="1" end="4">  
                </p:txEl>  
            </p:spTgt>  
        </p:tgtEl>  
        <p:attrNameLst>  
            <p:attrName>style.fontSize</p:attrName>  
        </p:attrNameLst>  
    </p:cBhvr>  
</p:anim>

В следующей таблице перечислены дочерние элементы элемента, используемого <anim/> при работе с анимацией, и соответствующие им классы пакета SDK Open XML.

Элемент PresentationML Класс пакета SDK Open XML
<cBhvr/> CommonBehavior
<tavLst/> TimeAnimateValueList

В следующей таблице из спецификации ISO/IEC 29500 (Возможно, на английском языке) представлено описание атрибутов элемента <anim/>.

Атрибуты Описание
около Этот атрибут задает относительное значение смещения для анимации по отношению к ее позиции до начала анимации. Возможные значения для этого атрибута определяются типом данных строки схемы XML W3C.
calcmode Этот атрибут задает режим интерполяции для анимации. Возможные значения для этого атрибута определяются простым типом ST_TLAnimateBehaviorCalcMode (§19.7.20).
from Этот атрибут задает начальное значение анимации. Возможные значения для этого атрибута определяются типом данных строки схемы XML W3C.
на Этот атрибут задает конечное значение для анимации в процентах. Возможные значения для этого атрибута определяются типом данных строки схемы XML W3C.
valueType Этот атрибут указывает тип значения свойства. Возможные значения для этого атрибута определяются ST_TLAnimateBehaviorValueType простого типа (§19.7.21).

Open XML SDK Animate Class

Класс пакета SDK Animate OXML представляет элемент, определенный <anim/> в схеме формата файлов Open XML для документов PresentationML. Используйте класс для Animate управления отдельными <anim/> элементами в документе PresentationML.

Классы, представляющие дочерние <anim/> элементы элемента и поэтому обычно связанные с классом Animate , показаны в следующем списке.

Класс CommonBehavior

Класс CommonBehavior соответствует элементу <cBhvr/> . Этот элемент представлен <cBhvr/>в следующей информации из спецификации ISO/IEC 29500:

В этом элементе представлено описание стандартных типов поведения анимации.

Попробуйте подчеркнуть текст в фигуре, изменив размер шрифта. Элемент <anim/> следует использовать следующим образом:

<p:anim to="1.5" calcmode="lin" valueType="num">  
    <p:cBhvr override="childStyle">  
        <p:cTn id="6" dur="2000" fill="hold">  
        <p:tgtEl>  
            <p:spTgt spid="3">  
                <p:txEl>  
                   <p:charRg st="4294967295" end="4294967295"/>  
                </p:txEl>  
           </p:spTgt>  
        </p:tgtEl>  
        <p:attrNameLst>  
            <p:attrName>style.fontSize</p:attrName>  
        </p:attrNameLst>  
    </p:cBhvr>  
</p:anim>

Класс TimeAnimateValueList

Класс TimeAnimateValueList соответствует элементу <tavLst/> . Этот элемент представлен <tavLst/> в следующей информации из спецификации ISO/IEC 29500:

Этот элемент определяет список элементов значения анимации по времени.

Пример. Рассмотрим фигуру с анимацией "облета". Элемент <tav/> следует использовать следующим образом:

<p:anim calcmode="lin" valueType="num">  
    <p:cBhvr additive="base"> … </p:cBhvr>  
    <p:tavLst>  
        <p:tav tm="0">  
            <p:val>  
                <p:strVal val="1+#ppt_h/2"/>  
            </p:val>  
        </p:tav>  
        <p:tav tm="100000">  
            <p:val>  
                <p:strVal val="#ppt_y"/>  
            </p:val>  
        </p:tav>  
    </p:tavLst>  
</p:anim>

Работа с классом Animate

Таким Animate образом, класс, представляющий <anim/> элемент, также связан с другими классами, представляющими дочерние элементы <anim/> элемента, включая CommonBehavior класс , описывающий распространенные варианты анимации, и TimeAnimateValueList класс, указывающий список элементов значения, анимированных по времени, как показано в предыдущем XML-коде. Другими классами, связанными с классом AnimateTiming , являются класс , который задает сведения о времени для всех анимаций на слайде TargetElement , и класс , который указывает целевые дочерние элементы, к которым применяются эффекты анимации.

См. также

Сведения о пакете SDK Open XML для OfficeПрактическое руководство. Создание презентации путем предоставления имени файлаПрактическое руководство. Вставка нового слайда впрезентацию Практическое руководство. Удаление слайда из презентацииПрактическое руководство. Применение темы к презентации