在 JavaScript 中為 PowerPoint 文字加入動畫

概述

本文說明如何在 Aspose.Slides 中對單一段落套用動畫效果,以及如何取得已指派給文字框段落的動畫效果。重點在於用於新增段落層級動畫與檢視簡報中現有段落動畫效果的 API 方法。

將動畫效果新增至段落

我們在 Sequence 以及 Sequence 類別中加入了 addEffect() 方法。此方法允許您為單一段落新增動畫效果。以下範例程式碼示範如何為單一段落新增動畫效果:

var presentation = new aspose.slides.Presentation("Presentation.pptx");
try {
    // 選取要加入效果的段落
    var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
    var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
    // 為選取的段落加入 Fly 動畫效果
    var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick);
    presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (presentation != null) {
        presentation.dispose();
    }
}

取得段落中的動畫效果

您可能會想查詢已加入段落的動畫效果——例如,在某些情況下,您想取得段落的動畫效果,以便將這些效果套用到其他段落或圖形。

Aspose.Slides for Node.js via Java 讓您能取得套用於文字框(圖形)中段落的全部動畫效果。以下範例程式碼示範如何取得段落中的動畫效果:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence();
    var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) {
        let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i);
        var effects = sequence.getEffectsByParagraph(paragraph);
        if (effects.length > 0) {
            console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect.");
        }
    }
} finally {
    pres.dispose();
}

常見問題

文字動畫與投影片切換有何不同,且能否結合使用?

文字動畫控制投影片上物件隨時間的行為,而切換則控制投影片之間的切換方式。兩者互相獨立,可同時使用;播放順序由動畫時間軸與切換設定共同決定。

將文字動畫匯出為 PDF 或圖像時,是否會保留?

不會。PDF 與點陣圖都是靜態的,您只能看到投影片的單一狀態,沒有動態效果。若需保留動畫,請使用影片HTML匯出。

文字動畫在版面配置和投影片母片中是否有效?

套用於版面配置或母片物件的效果會被繼承至投影片,但其時間與與投影片層級動畫的互動取決於最終在投影片上的序列。