Анимация форм
Анимации — это визуальные эффекты, которые можно применять к текстам, изображениям, формам или диаграммам. Они оживляют презентации или их элементы.
Почему стоит использовать анимации в презентациях?
Используя анимации, вы можете
- контролировать поток информации
- подчеркивать важные моменты
- увеличивать интерес или участие в вашей аудитории
- облегчать чтение, усвоение или обработку контента
- привлекать внимание ваших читателей или зрителей к важным частям презентации
PowerPoint предоставляет множество опций и инструментов для анимаций и эффектов анимации в категориях вход, выход, акцент и движение по пути.
Анимации в Aspose.Slides
- Aspose.Slides предоставляет классы и типы, которые вам нужны для работы с анимациями в пространстве имен Aspose.Slides.Animation,
- Aspose.Slides предоставляет более 150 эффектов анимации в перечислении EffectType. Эти эффекты по сути такие же (или эквивалентные), как эффекты, используемые в PowerPoint.
Применение анимации к TextBox
Aspose.Slides для .NET позволяет применять анимацию к тексту в форме.
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд через его индекс.
- Добавьте
rectangle
IAutoShape. - Добавьте текст в IAutoShape.TextFrame.
- Получите основную последовательность эффектов.
- Добавьте эффект анимации к IAutoShape.
- Установите свойство TextAnimation.BuildType на значение из перечисления BuildType.
- Запишите презентацию на диск в виде файла PPTX.
Этот код на C# показывает, как применить эффект Fade
к AutoShape и установить анимацию текста на значение По 1-му уровню абзацев:
// Создает экземпляр класса презентации, который представляет собой файл презентации.
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
// Добавляет новуюAutoShape с текстом
IAutoShape autoShape = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 100);
ITextFrame textFrame = autoShape.TextFrame;
textFrame.Text = "Первый абзац \nВторой абзац \nТретий абзац";
// Получает основную последовательность слайда.
ISequence sequence = sld.Timeline.MainSequence;
// Добавляет эффект анимации Fade к форме
IEffect effect = sequence.AddEffect(autoShape, EffectType.Fade, EffectSubtype.None, EffectTriggerType.OnClick);
// Анимирует текст формы по 1-му уровню абзацев
effect.TextAnimation.BuildType = BuildType.ByLevelParagraphs1;
// Сохраняет файл PPTX на диск
pres.Save(path + "AnimTextBox_out.pptx", SaveFormat.Pptx);
}
Применение анимации к PictureFrame
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд через его индекс.
- Добавьте или получите PictureFrame на слайде.
- Получите основную последовательность эффектов.
- Добавьте эффект анимации к PictureFrame.
- Запишите презентацию на диск в виде файла PPTX.
Этот код на C# показывает, как применить эффект Fly
к рамке изображения:
// Создает экземпляр класса презентации, который представляет собой файл презентации.
using (Presentation pres = new Presentation())
{
// Загружает изображение, которое будет добавлено в коллекцию изображений презентации
Image img = new Bitmap("aspose-logo.jpg");
IPPImage image = pres.Images.AddImage(img);
// Добавляет рамку изображения на слайд
IPictureFrame picFrame = pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 100, 100, image);
// Получает основную последовательность слайда.
ISequence sequence = pres.Slides[0].Timeline.MainSequence;
// Добавляет эффект анимации Fly from Left к рамке изображения
IEffect effect = sequence.AddEffect(picFrame, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.OnClick);
// Сохраняет файл PPTX на диск
pres.Save(path + "AnimImage_out.pptx", SaveFormat.Pptx);
}
Применение анимации к форме
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд через его индекс.
- Добавьте
rectangle
IAutoShape. - Добавьте
Bevel
IAutoShape (когда на этот объект нажимают, анимация запускается). - Создайте последовательность эффектов на форме Bevel.
- Создайте пользовательский
UserPath
. - Добавьте команды для перемещения к
UserPath
. - Запишите презентацию на диск в виде файла PPTX.
Этот код на C# показывает, как применить эффект PathFootball
(путь футбольного мяча) к форме:
// Создает экземпляр класса Presentation, который представляет собой файл презентации.
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
// Создает эффект PathFootball для существующей формы с нуля.
IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 150, 250, 25);
ashp.AddTextFrame("Анимированный TextBox");
// Добавляет эффект анимации PathFootBall.
pres.Slides[0].Timeline.MainSequence.AddEffect(ashp, EffectType.PathFootball,
EffectSubtype.None, EffectTriggerType.AfterPrevious);
// Создает некий "кнопку".
IShape shapeTrigger = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Bevel, 10, 10, 20, 20);
// Создает последовательность эффектов для кнопки.
ISequence seqInter = pres.Slides[0].Timeline.InteractiveSequences.Add(shapeTrigger);
// Создает пользовательский маршрут. Наш объект будет перемещен только после нажатия кнопки.
IEffect fxUserPath = seqInter.AddEffect(ashp, EffectType.PathUser, EffectSubtype.None, EffectTriggerType.OnClick);
// Добавляет команды для перемещения, так как созданный путь пуст.
IMotionEffect motionBhv = ((IMotionEffect)fxUserPath.Behaviors[0]);
PointF[] pts = new PointF[1];
pts[0] = new PointF(0.076f, 0.59f);
motionBhv.Path.Add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, true);
pts[0] = new PointF(-0.076f, -0.59f);
motionBhv.Path.Add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, false);
motionBhv.Path.Add(MotionCommandPathType.End, null, MotionPathPointsType.Auto, false);
// Записывает файл PPTX на диск
pres.Save("AnimExample_out.pptx", SaveFormat.Pptx);
}
Получение эффектов анимации, примененных к форме
Вы можете решить выяснить все эффекты анимации, примененные к одной форме.
Этот код на C# показывает, как получить все эффекты, примененные к конкретной форме:
// Создает экземпляр класса презентации, который представляет собой файл презентации.
using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
ISlide firstSlide = pres.Slides[0];
// Получает основную последовательность слайда.
ISequence sequence = firstSlide.Timeline.MainSequence;
// Получает первую форму на слайде.
IShape shape = firstSlide.Shapes[0];
// Получает все эффекты анимации, примененные к форме.
IEffect[] shapeEffects = sequence.GetEffectsByShape(shape);
if (shapeEffects.Length > 0)
Console.WriteLine("Форма " + shape.Name + " имеет " + shapeEffects.Length + " эффектов анимации.");
}
Изменение временных свойств эффекта анимации
Aspose.Slides для .NET позволяет изменять временные свойства эффекта анимации.
Это панель времени анимации и расширенное меню в Microsoft PowerPoint:
Это соответствия между временными параметрами PowerPoint и свойствами Effect.Timing:
- Выпадающий список PowerPoint Timing Start соответствует свойству Effect.Timing.TriggerType.
- Время PowerPoint Timing Duration соответствует свойству Effect.Timing.Duration. Продолжительность анимации (в секундах) — это общее время, которое требуется анимации для завершения одного цикла.
- Время задержки PowerPoint Timing Delay соответствует свойству Effect.Timing.TriggerDelayTime.
- Выпадающий список PowerPoint Timing Repeat соответствует следующим свойствам:
- Свойство Effect.Timing.RepeatCount, которое описывает количество раз, которое эффект повторяется;
- Флаг Effect.Timing.RepeatUntilEndSlide, который указывает, будет ли эффект повторяться до конца слайда;
- Флаг Effect.Timing.RepeatUntilNextClick, который указывает, будет ли эффект повторяться до следующего щелчка.
- Флажок PowerPoint Timing Rewind when done playing соответствует свойству Effect.Timing.Rewind.
Вот как вы можете изменить свойства времени эффекта:
- Примените или получите эффект анимации.
- Установите новые значения для нужных вам свойств Effect.Timing.
- Сохраните измененный файл PPTX.
Этот код на C# демонстрирует операцию:
// Создает экземпляр класса презентации, который представляет собой файл презентации.
using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
// Получает основную последовательность слайда.
ISequence sequence = pres.Slides[0].Timeline.MainSequence;
// Получает первый эффект главной последовательности.
IEffect effect = sequence[0];
// Изменяет тип триггера эффекта на запуск по щелчку
effect.Timing.TriggerType = EffectTriggerType.OnClick;
// Изменяет продолжительность эффекта
effect.Timing.Duration = 3f;
// Изменяет время задержки триггера эффекта
effect.Timing.TriggerDelayTime = 0.5f;
// Если значение повторения эффекта "none"
if (effect.Timing.RepeatCount == 1f)
{
// Изменяет повторение эффекта на "Until Next Click"
effect.Timing.RepeatUntilNextClick = true;
}
else
{
// Изменяет повторение эффекта на "Until End of Slide"
effect.Timing.RepeatUntilEndSlide = true;
}
// Включает перемотку эффекта
effect.Timing.Rewind = true;
// Сохраняет файл PPTX на диск
pres.Save("AnimExample_changed.pptx", SaveFormat.Pptx);
}
Звук эффекта анимации
Aspose.Slides предоставляет эти свойства, чтобы вы могли работать со звуками в эффектах анимации:
Добавление звука эффекта анимации
Этот код на C# показывает, как добавить звук эффекта анимации и остановить его, когда начинается следующий эффект:
using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
// Добавляет аудио в коллекцию аудио презентации
IAudio effectSound = pres.Audios.AddAudio(File.ReadAllBytes("sampleaudio.wav"));
ISlide firstSlide = pres.Slides[0];
// Получает основную последовательность слайда.
ISequence sequence = firstSlide.Timeline.MainSequence;
// Получает первый эффект главной последовательности
IEffect firstEffect = sequence[0];
// Проверяет эффект на "Без звука"
if (!firstEffect.StopPreviousSound && firstEffect.Sound == null)
{
// Добавляет звук для первого эффекта
firstEffect.Sound = effectSound;
}
// Получает первую интерактивную последовательность слайда.
ISequence interactiveSequence = firstSlide.Timeline.InteractiveSequences[0];
// Устанавливает флаг эффекта "Остановить предыдущий звук"
interactiveSequence[0].StopPreviousSound = true;
// Записывает файл PPTX на диск
pres.Save("AnimExample_Sound_out.pptx", SaveFormat.Pptx);
}
Извлечение звука эффекта анимации
- Создайте экземпляр класса Presentation .
- Получите ссылку на слайд через его индекс.
- Получите основную последовательность эффектов.
- Извлеките звук , встроенный в каждый эффект анимации.
Этот код на C# показывает, как извлечь звук, встроенный в эффект анимации:
// Создает экземпляр класса презентации, который представляет собой файл презентации.
using (Presentation presentation = new Presentation("EffectSound.pptx"))
{
ISlide slide = presentation.Slides[0];
// Получает основную последовательность слайда.
ISequence sequence = slide.Timeline.MainSequence;
foreach (IEffect effect in sequence)
{
if (effect.Sound == null)
continue;
// Извлекает звук эффекта в массив байтов
byte[] audio = effect.Sound.BinaryData;
}
}
После анимации
Aspose.Slides для .NET позволяет вам изменять свойства после анимации эффекта анимации.
Это панель эффекта анимации и расширенное меню в Microsoft PowerPoint:
Выпадающий список PowerPoint Effect After animation соответствует следующим свойствам:
- Свойство IEffect.AfterAnimationType , которое описывает тип после анимации :
- PowerPoint Дополнительные цвета соответствует типу AfterAnimationType.Color;
- Элемент списка PowerPoint Не затемнять соответствует типу AfterAnimationType.DoNotDim (тип анимации по умолчанию);
- Элемент списка PowerPoint Скрыть после анимации соответствует типу AfterAnimationType.HideAfterAnimation;
- Элемент списка PowerPoint Скрыть при следующем щелчке мыши соответствует типу AfterAnimationType.HideOnNextMouseClick;
- Свойство IEffect.AfterAnimationColor , которое определяет формат цвета после анимации. Это свойство работает в сочетании с типом AfterAnimationType.Color. Если вы измените тип на другой, цвет после анимации будет очищен.
Этот код на C# показывает, как изменить эффект после анимации:
// Создает экземпляр класса презентации, который представляет собой файл презентации
using (Presentation pres = new Presentation("AnimImage_out.pptx"))
{
ISlide firstSlide = pres.Slides[0];
// Получает первый эффект главной последовательности
IEffect firstEffect = firstSlide.Timeline.MainSequence[0];
// Изменяет тип эффекта после анимации на цвет
firstEffect.AfterAnimationType = AfterAnimationType.Color;
// Устанавливает цвет затемнения после анимации
firstEffect.AfterAnimationColor.Color = Color.AliceBlue;
// Записывает файл PPTX на диск
pres.Save("AnimImage_AfterAnimation.pptx", SaveFormat.Pptx);
}
Анимация текста
Aspose.Slides предоставляет эти свойства, чтобы позволить вам работать с блоком Анимация текста эффекта анимации:
- IEffect.AnimateTextType , который описывает тип анимации текста эффекта. Текст формы может быть анимирован:
- Все сразу (AnimateTextType.AllAtOnce тип)
- По словам (AnimateTextType.ByWord тип)
- По букве (AnimateTextType.ByLetter тип)
- IEffect.DelayBetweenTextParts устанавливает задержку между анимированными частями текста (словами или буквами). Положительное значение указывает процент от продолжительности эффекта. Отрицательное значение указывает задержку в секундах.
Вот как вы можете изменить свойства анимации эффекта текста:
- Примените или получите эффект анимации.
- Установите свойство IEffect.TextAnimation.BuildType на значение BuildType.AsOneObject , чтобы отключить режим анимации По абзацам.
- Установите новые значения для свойств IEffect.AnimateTextType и IEffect.DelayBetweenTextParts.
- Сохраните измененный файл PPTX.
Этот код на C# демонстрирует операцию:
// Создает экземпляр класса презентации, который представляет собой файл презентации.
using (Presentation pres = new Presentation("AnimTextBox_out.pptx"))
{
ISlide firstSlide = pres.Slides[0];
// Получает первый эффект главной последовательности
IEffect firstEffect = firstSlide.Timeline.MainSequence[0];
// Изменяет тип анимации текста эффекта на "Как один объект"
firstEffect.TextAnimation.BuildType = BuildType.AsOneObject;
// Изменяет тип анимации текста эффекта на "По словам"
firstEffect.AnimateTextType = AnimateTextType.ByWord;
// Устанавливает задержку между словами на 20% от длительности эффекта
firstEffect.DelayBetweenTextParts = 20f;
// Записывает файл PPTX на диск
pres.Save("AnimTextBox_AnimateText.pptx", SaveFormat.Pptx);
}