Главная » Silverlight » Правила анимации

0

Для понимания анимации Silverlight необходимо учитывать несколько ключевых правил.

•       Анимация Silverlight основана на времени. Разработчик задает интервал вре­мени и начальное и конечное состояния. Надстройка Silverlight вычисляет часто­ту кадров.

•       Анимация изменяет свойства. Это означает, что встроенные в Silverlight сред­ства анимации могут делать только одно: изменять значения определенных свойств на протяжении заданного интервала времени. Это правило выглядит су­щественным ограничением (во многих случаях так оно и есть), тем не менее сред­ства анимации Silverlight позволяют создавать огромное количество визуальных эффектов всего лишь путем изменения свойств.

•       Для каждого типа данных необходим отдельный класс анимации. Напри­мер, в свойстве Button.Width используется вещественный тип данных с двой­ной точностью. Поэтому для изменения ширины кнопки в процессе анимации необходимо использовать класс DoubleAnimation. Для изменения цвета, исполь­зуемого для прорисовки фона контейнера Canvas, необходимо использовать класс ColorAnimation.

В Silverlight определено всего несколько классов анимации, поэтому количество ти­пов данных, которые можно использовать в анимации, ограничено. В текущей версии Silverlight анимацию можно применять для изменения свойств, содержащих данные следующих типов: вещественное число с двойной точностью, объект, значение Color и структура Point. Однако вы можете создавать собственные анимационные классы, работающие с разными типами данных. Создаваемый анимационный класс должен быть производным от System.Windows .Media.Animation. В нем нужно задать, как зна­чение должно изменяться со временем.

Для многих типов данных нет анимационных классов, потому что они были бы непрактичными. Характерный пример такого типа — некоторые перечисления. Например, для управления размещением элемента в контейнере используется свой­ство HorizontalAlignment, принимающее перечисление HorizontalAlignment. Данное перечисление содержит только четыре значения (Left, Right, Center и Stretch), кото­рые ограничивают анимацию. Можно задать переключение элемента из одного состо­яния в другое, однако, изменяя значение свойства, невозможно создать плавный пере­ход между состояниями. По этой причине встроенного анимационного класса для типа HorizontalAlignment не существует. Вы можете создать для него собственный анима­ционный класс, однако он тоже будет ограничен четырьмя значениями перечисления и с его помощью тоже можно будет лишь перескакивать из одного состояния в другое.

Ссылочные типы обычно не анимируются. Однако можно анимировать их вложенные свойства. Например, все элементы управления, производные от класса CotentControl, имеют свойство Background, которое позволяет установить объект кисти, используемой для прорисовки фона. Использовать анимацию для переключения кистей неэффектив­но, однако средствами анимации можно изменять свойства кисти. Например, можно из­менять свойство Color кисти SolidColroBrush (с помощью класса ColorAnimation) или свойство Offset элемента GradientStop кисти LinearGradientBrush (с помощью клас­са DoubleAnimation). Это позволяет плавно изменять внешний вид элементов Silverlight.

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

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии