Анимировать текст PowerPoint в C++
Добавление анимационных эффектов к абзацам
Мы добавили метод AddEffect() в классы Sequence и ISequence. Этот метод позволяет добавлять анимационные эффекты к отдельному абзацу. Ниже приведён пример кода, показывающий, как добавить анимационный эффект к отдельному абзацу:
String dataDir = GetDataPath();
auto presentation = System::MakeObject<Presentation>(dataDir + u"Presentation1.pptx");
// выбрать абзац для добавления эффекта
auto autoShape = System::ExplicitCast<IAutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
auto paragraph = autoShape->get_TextFrame()->get_Paragraphs()->idx_get(0);
// добавить эффект анимации Fly к выбранному абзацу
auto sequence = presentation->get_Slides()->idx_get(0)->get_Timeline()->get_MainSequence();
auto effect = sequence->AddEffect(paragraph, EffectType::Fly, EffectSubtype::Left, EffectTriggerType::OnClick);
presentation->Save(dataDir + u"AnimationEffectinParagraph.pptx", SaveFormat::Pptx);
Получение анимационных эффектов для абзацев
Возможно, вам понадобится определить, какие анимационные эффекты применены к абзацу; например, в одном случае вы хотите получить анимационные эффекты абзаца, чтобы применить их к другому абзацу или фигуре. Aspose.Slides для C++ позволяет получить все анимационные эффекты, применённые к абзацам, содержащимся в текстовом фрейме (фигуре). Ниже приведён пример кода, показывающий, как получить анимационные эффекты в абзаце:
String dataDir = GetDataPath();
auto pres = System::MakeObject<Presentation>(dataDir + u"Test.pptx");
auto sequence = pres->get_Slides()->idx_get(0)->get_Timeline()->get_MainSequence();
auto autoShape = System::ExplicitCast<IAutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(1));
for (auto paragraph : autoShape->get_TextFrame()->get_Paragraphs())
{
auto effects = sequence->GetEffectsByParagraph(paragraph);
if (effects->get_Length() > 0)
{
Console::WriteLine(String(u"Paragraph \"") + paragraph->get_Text() + u"\" has " + ObjectExt::ToString(effects[0]->get_Type()) + u" effect.");
}
}
FAQ
Чем анимация текста отличается от переходов слайдов и можно ли их комбинировать?
Анимация текста управляет поведением объекта во времени на слайде, тогда как переходы управляют переключением слайдов. Они независимы и могут использоваться вместе; порядок воспроизведения определяется шкалой анимации и настройками переходов.
Сохраняются ли анимации текста при экспорте в PDF или изображения?
Нет. PDF и растровые изображения статичны, поэтому вы увидите только один фиксированный кадр слайда без движения. Чтобы сохранить анимацию, используйте экспорт в видео или в HTML.
Работают ли анимации текста в макетах и мастере слайдов?
Эффекты, применённые к объектам макета/мастера, наследуются слайдами, однако их тайминг и взаимодействие с анимациями уровня слайда зависят от окончательной последовательности на конкретном слайде.