Alakzat animációk alkalmazása prezentációkban .NET környezetben

Bevezetés

Az animációk vizuális hatások, amelyeket szövegekre, képekre, alakzatokra vagy diagramokra lehet alkalmazni. Életet adnak a bemutatóknak vagy azok elemeinek.

Miért használjunk animációkat a bemutatókban?

  • az információáramlás irányítása
  • fontos pontok kiemelése
  • az érdeklődés vagy a közönség részvételének növelése
  • a tartalom könnyebb olvasása, elsajátítása vagy feldolgozása
  • a közönség figyelmének felhívása a bemutató fontos részeire

A PowerPoint számos lehetőséget és eszközt kínál az animációk és animációs hatások belépés, kilépés, kiemelés és mozgási útvonalak kategóriáiban.

Animációk az Aspose.Slides-ban

  • Az Aspose.Slides biztosítja az osztályokat és típusokat, amelyekre az animációkkal való munkához szükség van az Aspose.Slides.Animation névtérben,
  • Az Aspose.Slides több mint 150 animációs hatást kínál az EffectType felsorolásban. Ezek a hatások lényegében ugyanazok (vagy ekvivalens) a PowerPoint-ban használt hatások.

Animáció alkalmazása egy szövegdobozra

Az Aspose.Slides for .NET lehetővé teszi, hogy animációt alkalmazz a formán belüli szövegre.

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg egy dia hivatkozását az indexén keresztül.
  3. Adjon hozzá egy rectangle IAutoShape elemet.
  4. Adjon szöveget a IAutoShape.TextFrame objektumhoz.
  5. Szerezzen egy fő hatássorozatot.
  6. Adjon animációs hatást a IAutoShape elemhez.
  7. Állítsa be a TextAnimation.BuildType tulajdonságot a BuildType Enumeration értékére.
  8. Mentse a bemutatót lemezre PPTX fájlként.

Ez a C# kód bemutatja, hogyan kell a Fade hatást alkalmazni az AutoShape-re, és a szöveganimációt a By 1st Level Paragraphs értékre állítani:

// Példányosít egy prezentáció osztályt, amely egy prezentáció fájlt képvisel.
using (Presentation pres = new Presentation())
{
    ISlide sld = pres.Slides[0];
    
    // Új AutoShape elemet ad hozzá szöveggel
    IAutoShape autoShape = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 100);

    ITextFrame textFrame = autoShape.TextFrame;
    textFrame.Text = "First paragraph \nSecond paragraph \n Third paragraph";

    // Lekéri a dia fő sorozatát.
    ISequence sequence = sld.Timeline.MainSequence;

    // Fade animációs hatást ad hozzá az alakzathoz
    IEffect effect = sequence.AddEffect(autoShape, EffectType.Fade, EffectSubtype.None, EffectTriggerType.OnClick);

    // Animálja az alakzat szövegét az első szintű bekezdések szerint
    effect.TextAnimation.BuildType = BuildType.ByLevelParagraphs1;

    // Mentse a PPTX fájlt a lemezre
    pres.Save(path + "AnimTextBox_out.pptx", SaveFormat.Pptx);
}

Animáció alkalmazása egy PictureFrame-re

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg egy dia hivatkozását az indexén keresztül.
  3. Adjon hozzá vagy szerezzen meg egy PictureFrame elemet a dián.
  4. Szerezze meg a fő hatássorozatot.
  5. Adjon animációs hatást a PictureFrame elemhez.
  6. Mentse a bemutatót lemezre PPTX fájlként.

Ez a C# kód bemutatja, hogyan kell a Fly hatást alkalmazni egy képkockára:

// Példányosít egy prezentáció osztályt, amely egy prezentáció fájlt képvisel.
using (Presentation pres = new Presentation())
{
    // Betölti a képet, hogy hozzáadja a prezentáció képgyűjteményéhez
    IImage image = Images.FromFile("aspose-logo.jpg");
    IPPImage ppImage = pres.Images.AddImage(image);
    image.Dispose();

    // Képkockát ad hozzá a diához
    IPictureFrame picFrame = pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 100, 100, ppImage);

    // Lekéri a dia fő sorozatát.
    ISequence sequence = pres.Slides[0].Timeline.MainSequence;

    // Fly balról animációs hatást ad hozzá a képkockához
    IEffect effect = sequence.AddEffect(picFrame, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.OnClick);

    // Mentse a PPTX fájlt a lemezre
    pres.Save("AnimImage_out.pptx", SaveFormat.Pptx);
}

Animáció alkalmazása egy alakzatra

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg egy dia hivatkozását az indexén keresztül.
  3. Adjon hozzá egy rectangle IAutoShape elemet.
  4. Adjon hozzá egy Bevel IAutoShape elemet (amikor ez az objektumra kattintanak, az animáció lejátszásra kerül).
  5. Hozzon létre egy hatássorozatot a bevel alakzaton.
  6. Hozzon létre egy egyedi UserPath-et.
  7. Adjon parancsokat a UserPath-ra való mozgáshoz.
  8. Mentse a bemutatót lemezre PPTX fájlként.

Ez a C# kód bemutatja, hogyan kell a PathFootball (path football) hatást alkalmazni egy alakzatra:

// Példányosít egy Presentation osztályt, amely egy prezentáció fájlt képvisel.
using (Presentation pres = new Presentation())
{
    ISlide sld = pres.Slides[0];

    // Létrehozza a PathFootball hatást egy meglévő alakzatra a semmiből.
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 150, 250, 25);

    ashp.AddTextFrame("Animated TextBox");

    // Hozzáadja a PathFootball animációs hatást.
    pres.Slides[0].Timeline.MainSequence.AddEffect(ashp, EffectType.PathFootball,
                           EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // Létrehozza egyfajta "gomb" elemet.
    IShape shapeTrigger = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Bevel, 10, 10, 20, 20);

    // Létrehozza a gombhoz tartozó hatássorozatot.
    ISequence seqInter = pres.Slides[0].Timeline.InteractiveSequences.Add(shapeTrigger);

    // Létrehoz egy egyéni felhasználói útvonalat. Az objektumunk csak a gomb megnyomása után mozdul el.
    IEffect fxUserPath = seqInter.AddEffect(ashp, EffectType.PathUser, EffectSubtype.None, EffectTriggerType.OnClick);

    // Hozzáad mozgási parancsokat, mivel a létrehozott útvonal üres.
    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);

    // Kiírja a PPTX fájlt a lemezre
    pres.Save("AnimExample_out.pptx", SaveFormat.Pptx);
}

Az alakzatra alkalmazott animációs hatások lekérése

A következő példák bemutatják, hogyan kell használni a GetEffectsByShape metódust a ISequence interfészből, hogy lekérje egy alakzatra alkalmazott összes animációs hatást.

Példa 1: Az animációs hatások lekérése egy alakzatra egy normál dián

Korábban megtanulta, hogyan kell animációs hatásokat hozzáadni az alakzatokhoz a PowerPoint bemutatókban. A következő mintakód bemutatja, hogyan lehet lekérni az első alakzatra az első normál dián a AnimExample_out.pptx bemutatóban alkalmazott hatásokat.

using (Presentation presentation = new Presentation("AnimExample_out.pptx"))
{
    ISlide firstSlide = presentation.Slides[0];

    // Lekéri a dia fő animációs sorozatát.
    ISequence sequence = firstSlide.Timeline.MainSequence;

    // Lekéri az első alakzatot az első dián.
    IShape shape = firstSlide.Shapes[0];

    // Lekéri az alakzatra alkalmazott animációs hatásokat.
    IEffect[] shapeEffects = sequence.GetEffectsByShape(shape);

    if (shapeEffects.Length > 0)
        Console.WriteLine($"The shape {shape.Name} has {shapeEffects.Length} animation effects.");
}

Példa 2: Az összes animációs hatás lekérése, beleértve a helyőrzőkből örökölt hatásokat is

Ha egy alakzat egy normál dián helyőrzőkkel rendelkezik, amelyek a elrendezés dián és/vagy a mester dián találhatók, és animációs hatásokat adtak hozzá ezekhez a helyőrzőkhöz, akkor az alakzat összes hatása lejátszásra kerül a diavetítés során, beleértve a helyőrzőkből örökölt hatásokat is.

Tegyük fel, hogy van egy sample.pptx nevű PowerPoint bemutatófájl, amely egyetlen diát tartalmaz, azon csak egy lábléc alakzatot a “Made with Aspose.Slides” szöveggel, és a Random Bars hatás van alkalmazva az alakzatra.

Dia alakzat animációs hatás

Tegyük fel továbbá, hogy a Split hatás a lábléc helyőrzőre van alkalmazva az elrendezés dián.

Elrendezés alakzat animációs hatás

Végül, a Fly In hatás a lábléc helyőrzőre van alkalmazva a mester dián.

Mester alakzat animációs hatás

A következő mintakód bemutatja, hogyan kell használni a GetBasePlaceholder metódust a IShape interfészből, hogy elérje az alakzat helyőrzőit, és lekérje a lábléc alakzatra alkalmazott animációs hatásokat, beleértve az elrendezés és a mester diákon elhelyezkedő helyőrzőkből örökölt hatásokat.

using (Presentation presentation = new Presentation("sample.pptx"))
{
    ISlide slide = presentation.Slides[0];

    // Lekéri a normál dián lévő alakzat animációs hatásait.
    IShape shape = slide.Shapes[0];
    IEffect[] shapeEffects = slide.Timeline.MainSequence.GetEffectsByShape(shape);

    // Lekéri az elrendezés dián lévő helyőrző animációs hatásait.
    IShape layoutShape = shape.GetBasePlaceholder();
    IEffect[] layoutShapeEffects = slide.LayoutSlide.Timeline.MainSequence.GetEffectsByShape(layoutShape);

    // Lekéri a mester dián lévő helyőrző animációs hatásait.
    IShape masterShape = layoutShape.GetBasePlaceholder();
    IEffect[] masterShapeEffects = slide.LayoutSlide.MasterSlide.Timeline.MainSequence.GetEffectsByShape(masterShape);

    Console.WriteLine("Main sequence of shape effects:");
    PrintEffects(masterShapeEffects);
    PrintEffects(layoutShapeEffects);
    PrintEffects(shapeEffects);
}
static void PrintEffects(IEnumerable<IEffect> effects)
{
    foreach (IEffect effect in effects)
    {
        Console.WriteLine($"{effect.Type} {effect.Subtype}");
    }
}
Main sequence of shape effects:
Fly Bottom
Split VerticalIn
RandomBars Horizontal

Az animációs hatás időzítési tulajdonságainak módosítása

Az Aspose.Slides for .NET lehetővé teszi az animációs hatások Timing (időzítés) tulajdonságainak módosítását.

Ez a PowerPointban a Animation Timing ablaktábla és a kibővített menü:

animáció időzítése

Az alábbiak a PowerPoint Timing és az Effect.Timing tulajdonságok közti megfelelések:

Így módosíthatja az Effect Timing tulajdonságokat:

  1. Alkalmazza vagy szerezze be az animációs hatást.
  2. Állítson be új értékeket a szükséges Effect.Timing tulajdonságokhoz.
  3. Mentse el a módosított PPTX fájlt.

Ez a C# kód demonstrálja a műveletet:

// Példányosít egy presentation osztályt, amely egy prezentáció fájlt képvisel.
using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
    // Lekéri a dia fő sorozatát.
    ISequence sequence = pres.Slides[0].Timeline.MainSequence;

    // Lekéri a fő sorozat első hatását.
    IEffect effect = sequence[0];

    // A hatás TriggerType értékét kattintásra indításra módosítja
    effect.Timing.TriggerType = EffectTriggerType.OnClick;

    // A hatás időtartamát módosítja
    effect.Timing.Duration = 3f;

    // A hatás TriggerDelayTime értékét módosítja
    effect.Timing.TriggerDelayTime = 0.5f;

    // Ha a hatás Repeat értéke "none"
    if (effect.Timing.RepeatCount == 1f)
    {
        // A hatás ismétlést "Until Next Click" értékre módosítja
        effect.Timing.RepeatUntilNextClick = true;
    }
    else
    {
        // A hatás ismétlést "Until End of Slide" értékre módosítja
        effect.Timing.RepeatUntilEndSlide = true;
    }

    // Bekapcsolja a hatás Rewind beállítását
        effect.Timing.Rewind = true;
    
    // Mentse a PPTX fájlt a lemezre
    pres.Save("AnimExample_changed.pptx", SaveFormat.Pptx);
}

Animációs hatás hangja

Az Aspose.Slides a következő tulajdonságokat biztosítja, hogy hangokat kezelhessen animációs hatásokban:

Animációs hatás hangjának hozzáadása

Ez a C# kód bemutatja, hogyan kell animációs hatás hangot hozzáadni és leállítani, amikor a következő hatás elindul:

using (Presentation pres = new Presentation("AnimExample_out.pptx"))
{
	// Audió hozzáadása a prezentáció audiógyűjteményéhez
	IAudio effectSound = pres.Audios.AddAudio(File.ReadAllBytes("sampleaudio.wav"));

	ISlide firstSlide = pres.Slides[0];

	// Lekéri a dia fő sorozatát.
	ISequence sequence = firstSlide.Timeline.MainSequence;

	// Lekéri a fő sorozat első hatását
	IEffect firstEffect = sequence[0];

	// Ellenőrzi a hatás \"No Sound\" állapotát
	if (!firstEffect.StopPreviousSound && firstEffect.Sound == null)
	{
		// Hangot ad hozzá az első hatáshoz
		firstEffect.Sound = effectSound;
	}

	// Lekéri a dia első interaktív sorozatát.
	ISequence interactiveSequence = firstSlide.Timeline.InteractiveSequences[0];

	// Beállítja a hatás \"Stop previous sound\" jelzőjét
	interactiveSequence[0].StopPreviousSound = true;

	// Kiírja a PPTX fájlt a lemezre
	pres.Save("AnimExample_Sound_out.pptx", SaveFormat.Pptx);
}

Animációs hatás hangjának kinyerése

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg egy dia hivatkozását az indexén keresztül.
  3. Szerezze meg a fő hatássorozatot.
  4. Válassza ki a Sound beágyazott hangot minden animációs hatáshoz.

Ez a C# kód bemutatja, hogyan lehet kinyerni az animációs hatásba beágyazott hangot:

// Példányosít egy presentation osztályt, amely egy prezentáció fájlt képvisel.
using (Presentation presentation = new Presentation("EffectSound.pptx"))
{
    ISlide slide = presentation.Slides[0];

    // Lekéri a dia fő sorozatát.
    ISequence sequence = slide.Timeline.MainSequence;

    foreach (IEffect effect in sequence)
    {
        if (effect.Sound == null)
            continue;

        // Kivonja a hatás hangját byte tömbbe
        byte[] audio = effect.Sound.BinaryData;
    }
}

Animáció után

Az Aspose.Slides for .NET lehetővé teszi az animációs hatás After animation (animáció után) tulajdonságának módosítását.

Ez a PowerPointban az Animation Effect ablaktábla és a kibővített menü:

animációs hatás panel

A PowerPoint Effect After animation legördülő lista a következő tulajdonságoknak felel meg:

Ez a C# kód bemutatja, hogyan kell módosítani egy after animation hatást:

// Példányosít egy presentation osztályt, amely egy prezentáció fájlt képvisel
using (Presentation pres = new Presentation("AnimImage_out.pptx"))
{
    ISlide firstSlide = pres.Slides[0];

    // Lekéri a fő sorozat első hatását
    IEffect firstEffect = firstSlide.Timeline.MainSequence[0];

    // Az after animation típusát Color-ra változtatja
    firstEffect.AfterAnimationType = AfterAnimationType.Color;

    // Beállítja az after animation színét
    firstEffect.AfterAnimationColor.Color = Color.AliceBlue;

    // Kiírja a PPTX fájlt a lemezre
    pres.Save("AnimImage_AfterAnimation.pptx", SaveFormat.Pptx);
}

Szöveg animálása

Az Aspose.Slides a következő tulajdonságokat biztosítja, hogy a Animate text blokkot kezelje egy animációs hatásnál:

Így módosíthatja az Effect Animate text tulajdonságait:

  1. Alkalmazza vagy szerezze be az animációs hatást.
  2. Állítsa be a IEffect.TextAnimation.BuildType tulajdonságot a BuildType.AsOneObject értékre, hogy kikapcsolja a By Paragraphs animációs módot.
  3. Állítson be új értékeket a IEffect.AnimateTextType és a IEffect.DelayBetweenTextParts tulajdonságokhoz.
  4. Mentse el a módosított PPTX fájlt.

Ez a C# kód demonstrálja a műveletet:

// Példányosít egy presentation osztályt, amely egy prezentáció fájlt képvisel.
using (Presentation pres = new Presentation("AnimTextBox_out.pptx"))
{
    ISlide firstSlide = pres.Slides[0];

    // Lekéri a fő sorozat első hatását
    IEffect firstEffect = firstSlide.Timeline.MainSequence[0];

    // Módosítja a hatás szöveganimáció típusát "As One Object" értékre
    firstEffect.TextAnimation.BuildType = BuildType.AsOneObject;

    // Módosítja a hatás Animate text típusát "By word" értékre
    firstEffect.AnimateTextType = AnimateTextType.ByWord;

    // Beállítja a szavak közti késleltetést a hatás időtartamának 20%-ára
    firstEffect.DelayBetweenTextParts = 20f;

    // Kiírja a PPTX fájlt a lemezre
    pres.Save("AnimTextBox_AnimateText.pptx", SaveFormat.Pptx);
}

FAQ

Hogyan biztosíthatom, hogy az animációk megmaradjanak a bemutató webre publikálásakor?

Export to HTML5 és engedélyezze az opciókat, amelyek a shape és transition animációkért felelősek. A sima HTML nem játszik le diavetítési animációkat, míg a HTML5 igen.

Hogyan befolyásolja az animációt az alakzatok z-sorrendjének (rétegsorrend) módosítása?

Az animáció és a rajzolási sorrend független egymástól: egy hatás szabályozza a megjelenés/eltűnés időzítését és típusát, míg a z-sorrend meghatározza, mi takarja meg a mást. A látható eredményt ezek kombinációja határozza meg. (Ez a PowerPoint általános viselkedése; az Aspose.Slides hatások‑és‑alakzatok modellje ugyanazt a logikát követi.)

Vannak korlátozások az animációk videóvá konvertálásakor bizonyos hatások esetén?

Általánosságban a animációk támogatottak, de ritka esetekben vagy bizonyos hatások esetén eltérően jelenhetnek meg. Ajánlott tesztelni a használt hatásokkal és a könyvtár verziójával.