Переход между слайдами
Добавить переход между слайдами
Чтобы сделать это понятнее, мы продемонстрировали использование Aspose.Slides для C++ для управления простыми переходами между слайдами. Разработчики могут не только применять различные эффекты перехода между слайдами, но и настраивать поведение этих эффектов. Чтобы создать простой эффект перехода между слайдами, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Примените тип перехода слайда на слайде из одного из эффектов перехода, предлагаемых Aspose.Slides для C++ через перечисление TransitionType.
- Запишите измененный файл презентации.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String templatePath = u"../templates/SimpleSlideTransitions.pptx"; | |
const String outPath = u"../out/SimpleSlideTransitions.pptx"; | |
// Instantiate Presentation class | |
SharedPtr<Presentation>pres = MakeObject<Presentation>(templatePath); | |
// Apply circle type transition on slide 1 | |
pres->get_Slides()->idx_get(0)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Circle); | |
// Apply comb type transition on slide 2 | |
pres->get_Slides()->idx_get(1)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Comb); | |
// Write the presentation to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Добавить сложный переход между слайдами
В предыдущем разделе мы просто применили простой эффект перехода на слайде. Теперь, чтобы сделать этот простой эффект перехода еще лучше и более контролируемым, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Примените тип перехода слайда на слайде из одного из эффектов перехода, предлагаемых Aspose.Slides для C++.
- Вы также можете установить переход на «Автоматический при клике», через определенный период времени или то и другое.
- Если переход на слайде включен для «Автоматического при клике», переход будет осуществляться только при клике мыши. Более того, если установлено свойство «Автоматически через время», переход будет осуществляться автоматически после истечения заданного времени.
- Запишите изменённую презентацию в качестве файла презентации.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String templatePath = u"../templates/SimpleSlideTransitions.pptx"; | |
const String outPath = u"../out/BetterSlideTransitions.pptx"; | |
// Instantiate Presentation class | |
SharedPtr<Presentation>pres = MakeObject<Presentation>(templatePath); | |
// Apply circle type transition on slide 1 | |
pres->get_Slides()->idx_get(0)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Circle); | |
// Set the transition time of 3 seconds | |
pres->get_Slides()->idx_get(0)->get_SlideShowTransition()->set_AdvanceOnClick(true); | |
pres->get_Slides()->idx_get(0)->get_SlideShowTransition()->set_AdvanceAfterTime(3000); | |
// Apply comb type transition on slide 2 | |
pres->get_Slides()->idx_get(1)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Comb); | |
// Set the transition time of 5 seconds | |
pres->get_Slides()->idx_get(1)->get_SlideShowTransition()->set_AdvanceOnClick(true); | |
pres->get_Slides()->idx_get(1)->get_SlideShowTransition()->set_AdvanceAfterTime(5000); | |
// Write the presentation to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Морфный переход
Aspose.Slides для C++ теперь поддерживает морфный переход. Они представляют собой новый морфный переход, внедренный в PowerPoint 2019. Морфный переход позволяет анимировать плавное движение от одного слайда к другому. Эта статья описывает концепцию и как использовать морфный переход. Чтобы эффективно использовать морфный переход, вам понадобятся два слайда с по крайней мере одним общим объектом. Проще всего дублировать слайд, а затем переместить объект на втором слайде в другое место.
Следующий фрагмент кода показывает, как добавить клон слайда с некоторым текстом в презентацию и установить переход морфного типа для второго слайда.
const String outPath = u"../out/presentation-out.pptx"; | |
auto presentation = System::MakeObject<Presentation>(); | |
auto autoshape = System::DynamicCast<Aspose::Slides::AutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Rectangle, 100, 100, 400, 100)); | |
autoshape->get_TextFrame()->set_Text(u"Test text"); | |
presentation->get_Slides()->AddClone(presentation->get_Slides()->idx_get(0)); | |
auto x = presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->get_X(); | |
auto y = presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->get_Y(); | |
auto width = presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->get_Width(); | |
auto height = presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->get_Height(); | |
presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->set_X(x + 100); | |
presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->set_Y(y + 50); | |
presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->set_Width(width + 200); | |
presentation->get_Slides()->idx_get(1)->get_Shapes()->idx_get(0)->set_Height(height + 10); | |
presentation->get_Slides()->idx_get(1)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Morph); | |
presentation->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Тип морфного перехода
Добавлено новое перечисление Aspose.Slides.SlideShow.TransitionMorphType. Оно представляет собой различные типы морфного перехода слайда.
Перечисление TransitionMorphType имеет три члена:
- ByObject: Морфный переход будет осуществляться с учетом фигур как неделимых объектов.
- ByWord: Морфный переход будет осуществляться с передачей текста по словам, где это возможно.
- ByChar: Морфный переход будет осуществляться с передачей текста по символам, где это возможно.
Следующий фрагмент кода показывает, как установить морфный переход для слайда и изменить тип морфирования:
const String inputPath = u"../templates/presentation.pptx"; | |
const String outPath = u"../out/presentation-out.pptx"; | |
auto presentation = System::MakeObject<Presentation>(u"presentation.pptx"); | |
presentation->get_Slides()->idx_get(0)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Morph); | |
auto morphTransition = System::DynamicCast<Aspose::Slides::SlideShow::IMorphTransition>(presentation->get_Slides()->idx_get(0)->get_SlideShowTransition()->get_Value()); | |
morphTransition->set_MorphType(Aspose::Slides::SlideShow::TransitionMorphType::ByWord); | |
presentation->Save(u"presentation-out.pptx", Aspose::Slides::Export::SaveFormat::Pptx); | |
Установить эффекты перехода
Aspose.Slides для C++ поддерживает установку эффектов перехода, таких как: от черного, слева, справа и т.д. Для установки эффекта перехода. Пожалуйста, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд.
- Установите эффект перехода.
- Запишите презентацию в виде файла PPTX.
В приведенном ниже примере мы установили эффекты перехода.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String templatePath = u"../templates/SimpleSlideTransitions.pptx"; | |
const String outPath = u"../out/TransitionEffects.pptx"; | |
// Instantiate Presentation class | |
SharedPtr<Presentation>pres = MakeObject<Presentation>(templatePath); | |
// Apply circle type transition on slide 1 | |
pres->get_Slides()->idx_get(0)->get_SlideShowTransition()->set_Type(Aspose::Slides::SlideShow::TransitionType::Cut); | |
auto transition = DynamicCast<Aspose::Slides::SlideShow::OptionalBlackTransition>(pres->get_Slides()->idx_get(0)->get_SlideShowTransition()->get_Value()); | |
transition->set_FromBlack(true); | |
// Write the presentation to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |