ใช้การเคลื่อนไหวรูปร่างในงานนำเสนอบน Android

คำนำ

การเคลื่อนไหวเป็นเอฟเฟกต์ภาพที่สามารถนำไปใช้กับข้อความ, รูปภาพ, รูปทรง, หรือ แผนภูมิ. พวกมันทำให้การนำเสนอหรือส่วนประกอบของมันมีชีวิตชีวา.

ทำไมต้องใช้การเคลื่อนไหวในการนำเสนอ?

  • ควบคุมการไหลของข้อมูล
  • เน้นจุดสำคัญ
  • เพิ่มความสนใจหรือการมีส่วนร่วมของผู้ชม
  • ทำให้เนื้อหาอ่านง่ายหรือเข้าใจหรือประมวลผลได้ง่ายขึ้น
  • ดึงดูดความสนใจของผู้อ่านหรือผู้ชมไปยังส่วนสำคัญในงานนำเสนอ

PowerPoint มีตัวเลือกและเครื่องมือมากมายสำหรับการเคลื่อนไหวและเอฟเฟกต์การเคลื่อนไหวในประเภท entrance, exit, emphasis, และ motion paths.

การเคลื่อนไหวใน Aspose.Slides

  • Aspose.Slides มีคลาสและประเภทที่คุณต้องการเพื่อทำงานกับการเคลื่อนไหวภายใต้เนมสเปซ Aspose.Slides.Animation,
  • Aspose.Slides มีเอฟเฟกต์การเคลื่อนไหวกว่า 150 รายการใน enumeration EffectType. เอฟเฟกต์เหล่านี้โดยพื้นฐานแล้วคือน้ำเดียวกัน (หรือเทียบเท่า) กับที่ใช้ใน PowerPoint.

ใช้การเคลื่อนไหวกับ TextBox

Aspose.Slides for Android ผ่าน Java ช่วยให้คุณสามารถใช้การเคลื่อนไหวกับข้อความในรูปร่างได้.

  1. สร้างอินสแตนซ์ของคลาส Presentation.
  2. รับอ้างอิงสไลด์ผ่านดัชนีของมัน.
  3. เพิ่ม rectangle IAutoShape.
  4. เพิ่มข้อความไปยัง IAutoShape.TextFrame.
  5. รับลำดับหลักของเอฟเฟกต์.
  6. เพิ่มเอฟเฟกต์การเคลื่อนไหวให้กับ IAutoShape.
  7. ตั้งค่า property TextAnimation.BuildType เป็นค่าจาก enumeration BuildType.
  8. เขียนการนำเสนอไปยังดิสก์เป็นไฟล์ PPTX.

โค้ด Java นี้แสดงวิธีการใช้เอฟเฟกต์ Fade กับ AutoShape และตั้งค่า animation ของข้อความเป็นค่า By 1st Level Paragraphs :

// สร้างอินสแตนซ์ของคลาสการนำเสนอที่แทนไฟล์การนำเสนอ.
Presentation pres = new Presentation();
try {
    ISlide sld = pres.getSlides().get_Item(0);

    // เพิ่ม AutoShape ใหม่พร้อมข้อความ
    IAutoShape autoShape = sld.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 100);

    ITextFrame textFrame = autoShape.getTextFrame();
    textFrame.setText("First paragraph \nSecond paragraph \n Third paragraph");

    // ดึงลำดับหลักของสไลด์.
    ISequence sequence = sld.getTimeline().getMainSequence();

    // เพิ่มเอฟเฟกต์การเคลื่อนไหว Fade ให้กับรูปร่าง
    IEffect effect = sequence.addEffect(autoShape, EffectType.Fade, EffectSubtype.None, EffectTriggerType.OnClick);

    // ทำให้ข้อความของรูปร่างเคลื่อนไหวตามย่อหน้าระดับที่ 1
    effect.getTextAnimation().setBuildType(BuildType.ByLevelParagraphs1);

    // บันทึกไฟล์ PPTX ลงดิสก์
    pres.save(path + "AnimText_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

ใช้การเคลื่อนไหวกับ PictureFrame

  1. สร้างอินสแตนซ์ของคลาส Presentation.
  2. รับอ้างอิงสไลด์ผ่านดัชนีของมัน.
  3. เพิ่มหรือรับ PictureFrame บนสไลด์.
  4. รับลำดับหลักของเอฟเฟกต์.
  5. เพิ่มเอฟเฟกต์การเคลื่อนไหวให้กับ PictureFrame.
  6. เขียนการนำเสนอไปยังดิสก์เป็นไฟล์ PPTX.

โค้ด Java นี้แสดงวิธีการใช้เอฟเฟกต์ Fly กับ picture frame:

// สร้างอินสแตนซ์ของคลาสการนำเสนอที่แทนไฟล์การนำเสนอ.
Presentation pres = new Presentation();
try {
    // โหลดรูปภาพที่จะเพิ่มในคอลเลกชันรูปภาพของการนำเสนอ
    IPPImage picture;
    IImage image = Images.fromFile("aspose-logo.jpg");
    try {
        picture = pres.getImages().addImage(image);
    } finally {
        if (image != null) image.dispose();
    }

    // เพิ่มกรอบรูปไปยังสไลด์
    IPictureFrame picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 50, 50, 100, 100, picture);

    // ดึงลำดับหลักของสไลด์.
    ISequence sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence();

    // เพิ่มเอฟเฟกต์การเคลื่อนไหว Fly จากซ้ายให้กับกรอบรูป
    IEffect effect = sequence.addEffect(picFrame, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.OnClick);

    // บันทึกไฟล์ PPTX ลงดิสก์
    pres.save(path + "AnimImage_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

ใช้การเคลื่อนไหวกับ Shape

  1. สร้างอินสแตนซ์ของคลาส Presentation.
  2. รับอ้างอิงสไลด์ผ่านดัชนีของมัน.
  3. เพิ่ม rectangle IAutoShape.
  4. เพิ่ม Bevel IAutoShape (เมื่อคลิกวัตถุนี้ การเคลื่อนไหวจะเริ่มทำงาน).
  5. สร้างลำดับของเอฟเฟกต์บนรูปแบบ bevel.
  6. สร้าง UserPath แบบกำหนดเอง.
  7. เพิ่มคำสั่งเพื่อย้ายไปยัง UserPath.
  8. เขียนการนำเสนอไปยังดิสก์เป็นไฟล์ PPTX.

โค้ด Java นี้แสดงวิธีการใช้เอฟเฟกต์ PathFootball (path football) กับรูปทรง:

// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PPTX.
Presentation pres = new Presentation();
try {
    ISlide sld = pres.getSlides().get_Item(0);

    // สร้างเอฟเฟกต์ PathFootball ให้กับรูปทรงที่มีอยู่ตั้งแต่ต้น.
    IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 150, 150, 250, 25);
    ashp.addTextFrame("Animated TextBox");

    // เพิ่มเอฟเฟกต์การเคลื่อนไหว PathFootBall
    pres.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(ashp, EffectType.PathFootball,
            EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // สร้างบางอย่างเช่น "ปุ่ม".
    IShape shapeTrigger = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Bevel, 10, 10, 20, 20);

    // สร้างลำดับของเอฟเฟกต์สำหรับปุ่มนี้.
    ISequence seqInter = pres.getSlides().get_Item(0).getTimeline().getInteractiveSequences().add(shapeTrigger);

     // สร้างเส้นทางผู้ใช้แบบกำหนดเอง. วัตถุของเราจะเคลื่อนไหวหลังจากคลิกปุ่มเท่านั้น.
    IEffect fxUserPath = seqInter.addEffect(ashp, EffectType.PathUser, EffectSubtype.None, EffectTriggerType.OnClick);

     // เพิ่มคำสั่งการเคลื่อนที่ เนื่องจากเส้นทางที่สร้างยังว่างเปล่า.
    IMotionEffect motionBvh = ((IMotionEffect)fxUserPath.getBehaviors().get_Item(0));

    Point2D.Float[] pts = new Point2D.Float[1];
    pts[0] = new Point2D.Float(0.076f, 0.59f);
    motionBvh.getPath().add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, true);
    pts[0] = new Point2D.Float(-0.076f, -0.59f);
    motionBvh.getPath().add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, false);
    motionBvh.getPath().add(MotionCommandPathType.End, null, MotionPathPointsType.Auto, false);

     // เขียนไฟล์ PPTX ลงดิสก์
    pres.save("AnimExample_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

รับเอฟเฟกต์การเคลื่อนไหวที่ใช้กับ Shape

ตัวอย่างต่อไปนี้แสดงวิธีใช้เมธอด getEffectsByShape จากอินเทอร์เฟซ ISequence เพื่อรับเอฟเฟกต์การเคลื่อนไหวทั้งหมดที่ใช้กับรูปทรง.

ตัวอย่าง 1: รับเอฟเฟกต์การเคลื่อนไหวที่ใช้กับ Shape บนสไลด์ปกติ

ก่อนหน้านี้ คุณได้เรียนรู้วิธีเพิ่มเอฟเฟกต์การเคลื่อนไหวให้กับรูปทรงในงานนำเสนอ PowerPoint ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรับเอฟเฟกต์ที่ใช้กับรูปทรงแรกบนสไลด์ปกติแรกในงานนำเสนอ AnimExample_out.pptx.

Presentation presentation = new Presentation("AnimExample_out.pptx");
try {
    ISlide firstSlide = presentation.getSlides().get_Item(0);

    // ดึงลำดับการเคลื่อนไหวหลักของสไลด์.
    ISequence sequence = firstSlide.getTimeline().getMainSequence();

    // ดึงรูปทรงแรกบนสไลด์แรก.
    IShape shape = firstSlide.getShapes().get_Item(0);

    // ดึงเอฟเฟกต์การเคลื่อนไหวที่ใช้กับรูปทรง.
    IEffect[] shapeEffects = sequence.getEffectsByShape(shape);

    if (shapeEffects.length > 0)
        System.out.println("The shape " + shape.getName() + " has " + shapeEffects.length + " animation effects.");
} finally {
    if (presentation != null) presentation.dispose();
}

ตัวอย่าง 2: รับเอฟเฟกต์การเคลื่อนไหวทั้งหมด รวมถึงที่สืบทอดจาก placeholder

หากรูปทรงบนสไลด์ปกติมี placeholder ที่อยู่บนสไลด์เลย์เอาต์และ/หรือสไลด์มาสเตอร์ และมีการเพิ่มเอฟเฟกต์การเคลื่อนไหวให้กับ placeholder เหล่านี้ แล้วเอฟเฟกต์ทั้งหมดของรูปทรงจะถูกเล่นในระหว่างการแสดงสไลด์ รวมถึงที่สืบทอดจาก placeholder ด้วย

สมมติว่าเรามีไฟล์งานนำเสนอ PowerPoint sample.pptx ที่มีสไลด์หนึ่งที่มีเพียงรูปทรงส่วนท้าย (footer) ที่มีข้อความ “Made with Aspose.Slides” และมีการใช้เอฟเฟกต์ Random Bars กับรูปทรงนั้น

Slide shape animation effect

เรายังสมมติว่าเอฟเฟกต์ Split ถูกใช้กับ footer placeholder บนสไลด์ layout.

Layout shape animation effect

สุดท้าย เอฟเฟกต์ Fly In ถูกใช้กับ footer placeholder บนสไลด์ master.

Master shape animation effect

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้เมธอด getBasePlaceholder จากอินเทอร์เฟซ IShape เพื่อเข้าถึง placeholder ของรูปทรงและรับเอฟเฟกต์การเคลื่อนไหวที่ใช้กับรูปทรงส่วนท้าย รวมถึงที่สืบทอดจาก placeholder ที่อยู่บนเลย์เอาต์และมาสเตอร์สไลด์.

Presentation presentation = new Presentation("sample.pptx");

ISlide slide = presentation.getSlides().get_Item(0);

// Get animation effects of the shape on the normal slide.
IShape shape = slide.getShapes().get_Item(0);
IEffect[] shapeEffects = slide.getTimeline().getMainSequence().getEffectsByShape(shape);

// Get animation effects of the placeholder on the layout slide.
IShape layoutShape = shape.getBasePlaceholder();
IEffect[] layoutShapeEffects = slide.getLayoutSlide().getTimeline().getMainSequence().getEffectsByShape(layoutShape);

// Get animation effects of the placeholder on the master slide.
IShape masterShape = layoutShape.getBasePlaceholder();
IEffect[] masterShapeEffects = slide.getLayoutSlide().getMasterSlide().getTimeline().getMainSequence().getEffectsByShape(masterShape);

System.out.println("Main sequence of shape effects:");
printEffects(masterShapeEffects);
printEffects(layoutShapeEffects);
printEffects(shapeEffects);

presentation.dispose();
static void printEffects(IEffect[] effects)
{
    for (IEffect effect : effects)
    {
        String typeName = EffectType.getName(EffectType.class, effect.getType());
        String subtypeName = EffectSubtype.getName(EffectSubtype.class, effect.getSubtype());

        System.out.println(typeName + " " + subtypeName);
    }
}

Output:

Main sequence of shape effects:
Fly Bottom
Split VerticalIn
RandomBars Horizontal

เปลี่ยนคุณสมบัติ Timing ของเอฟเฟกต์การเคลื่อนไหว

Aspose.Slides for Android ผ่าน Java ช่วยให้คุณสามารถเปลี่ยนคุณสมบัติ Timing ของเอฟเฟกต์การเคลื่อนไหวได้.

นี่คือตาราง Animation Timing ใน Microsoft PowerPoint:

example1_image

การจับคู่ระหว่าง PowerPoint Timing และคุณสมบัติ Effect.Timing มีดังนี้:

  • ตัวเลือกดรอป‑ดาวน์ Start ของ PowerPoint Timing ตรงกับ property Effect.Timing.TriggerType.
  • ตัวเลือก Duration ของ PowerPoint Timing ตรงกับ property Effect.Timing.Duration. ระยะเวลา (เป็นวินาที) คือเวลาทั้งหมดที่เอฟเฟกต์ใช้ในการทำรอบหนึ่ง.
  • ตัวเลือก Delay ของ PowerPoint Timing ตรงกับ property Effect.Timing.TriggerDelayTime.

วิธีการเปลี่ยนคุณสมบัติ Timing ของเอฟเฟกต์:

  1. Apply หรือรับเอฟเฟกต์การเคลื่อนไหว.
  2. ตั้งค่าที่ใหม่สำหรับ property Effect.Timing ที่คุณต้องการ.
  3. บันทึกไฟล์ PPTX ที่แก้ไขแล้ว.

โค้ด Java นี้สาธิตการดำเนินการ:

// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ.
Presentation pres = new Presentation("AnimExample_out.pptx");
try {
    // ดึงลำดับหลักของสไลด์.
    ISequence sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence();

    // ดึงเอฟเฟกต์แรกของลำดับหลัก.
    IEffect effect = sequence.get_Item(0);

    // เปลี่ยน TriggerType ของเอฟเฟกต์ให้เริ่มเมื่อคลิก
    effect.getTiming().setTriggerType(EffectTriggerType.OnClick);

    // เปลี่ยนระยะเวลา (Duration) ของเอฟเฟกต์
    effect.getTiming().setDuration(3f);

    // เปลี่ยน TriggerDelayTime ของเอฟเฟกต์
    effect.getTiming().setTriggerDelayTime(0.5f);

    // บันทึกไฟล์ PPTX ลงดิสก์
    pres.save("AnimExample_changed.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

เสียงของเอฟเฟกต์การเคลื่อนไหว

Aspose.Slides ให้ property เหล่านี้เพื่อให้คุณทำงานกับเสียงในเอฟเฟกต์การเคลื่อนไหว:

เพิ่มเสียงให้กับเอฟเฟกต์การเคลื่อนไหว

โค้ด Java นี้แสดงวิธีเพิ่มเสียงให้กับเอฟเฟกต์การเคลื่อนไหวและหยุดเสียงเมื่อเอฟเฟกต์ถัดไปเริ่มต้น:

Presentation pres = new Presentation("AnimExample_out.pptx");
try {
    // เพิ่มออดิโอไปยังคอลเลกชันออดิโอของงานนำเสนอ
    IAudio effectSound = pres.getAudios().addAudio(Files.readAllBytes(Paths.get("sampleaudio.wav")));

    ISlide firstSlide = pres.getSlides().get_Item(0);

    // ดึงลำดับหลักของสไลด์.
    ISequence sequence = firstSlide.getTimeline().getMainSequence();

    // ดึงเอฟเฟกต์แรกของลำดับหลัก
    IEffect firstEffect = sequence.get_Item(0);

    // ตรวจสอบเอฟเฟกต์สำหรับ "ไม่มีเสียง"
    if (!firstEffect.getStopPreviousSound() && firstEffect.getSound() == null)
    {
        // เพิ่มเสียงให้กับเอฟเฟกต์แรก
        firstEffect.setSound(effectSound);
    }

    // ดึงลำดับเชิงโต้ตอบแรกของสไลด์.
    ISequence interactiveSequence = firstSlide.getTimeline().getInteractiveSequences().get_Item(0);

    // ตั้งค่าสถานะ \"หยุดเสียงก่อนหน้า\" ของเอฟเฟกต์
    interactiveSequence.get_Item(0).setStopPreviousSound(true);

    // บันทึกไฟล์ PPTX ลงดิสก์
    pres.save("AnimExample_Sound_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

ดึงเสียงออกจากเอฟเฟกต์การเคลื่อนไหว

  1. สร้างอินสแตนซ์ของคลาส Presentation.
  2. รับอ้างอิงสไลด์ผ่านดัชนีของมัน.
  3. รับลำดับหลักของเอฟเฟกต์.
  4. ดึง setSound(IAudio value) ที่ฝังอยู่ในแต่ละเอฟเฟกต์การเคลื่อนไหว.

โค้ด Java นี้แสดงวิธีดึงเสียงที่ฝังอยู่ในเอฟเฟกต์การเคลื่อนไหว:

// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ.
Presentation presentation = new Presentation("EffectSound.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    // ดึงลำดับหลักของสไลด์.
    ISequence sequence = slide.getTimeline().getMainSequence();

    for (IEffect effect : sequence)
    {
        if (effect.getSound() == null)
            continue;

        // สกัดเสียงของเอฟเฟกต์เป็นอาร์เรย์ของไบต์
        byte[] audio = effect.getSound().getBinaryData();
    }
} finally {
    if (presentation != null) presentation.dispose();
}

หลังการเคลื่อนไหว

Aspose.Slides for Android ผ่าน Java ช่วยให้คุณสามารถเปลี่ยนคุณสมบัติ After animation ของเอฟเฟกต์การเคลื่อนไหวได้.

นี่คือตาราง Animation Effect และเมนูขยายใน Microsoft PowerPoint:

example1_image

รายการดรอป‑ดาวน์ After animation ของ PowerPoint Effect ตรงกับคุณสมบัติดังต่อไปนี้:

โค้ด Java นี้แสดงวิธีการเปลี่ยนเอฟเฟกต์ After animation:

// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ
Presentation pres = new Presentation("AnimImage_out.pptx");
try {
    ISlide firstSlide = pres.getSlides().get_Item(0);

    // ดึงเอฟเฟกต์แรกของลำดับหลัก
    IEffect firstEffect = firstSlide.getTimeline().getMainSequence().get_Item(0);

    // เปลี่ยนประเภท After animation เป็น Color
    firstEffect.setAfterAnimationType(AfterAnimationType.Color);

    // ตั้งค่าสี After animation dim
    firstEffect.getAfterAnimationColor().setColor(Color.BLUE);

    // บันทึกไฟล์ PPTX ลงดิสก์
    pres.save("AnimImage_AfterAnimation.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

ทำให้ข้อความเคลื่อนไหว

Aspose.Slides มี property เหล่านี้เพื่อให้คุณทำงานกับบล็อก Animate text ของเอฟเฟกต์การเคลื่อนไหว:

  • [setAnimateTextType(int value)] ที่บรรยายประเภท Animate text ของเอฟเฟกต์. ข้อความของ shape สามารถเคลื่อนไหวได้:
  • [setDelayBetweenTextParts(float value)] ตั้งค่าการหน่วงเวลา ระหว่างส่วนของข้อความที่เคลื่อนไหว (คำหรืออักษร). ค่าเป็นบวกระบุเปอร์เซ็นต์ของระยะเวลาเอฟเฟกต์. ค่าเป็นลบระบุเวลาหน่วงเป็นวินาที.

นี่คือวิธีการเปลี่ยนคุณสมบัติ Animate text ของเอฟเฟกต์:

  1. Apply หรือรับเอฟเฟกต์การเคลื่อนไหว.
  2. ตั้งค่า property [setBuildType(int value)] เป็นค่า [BuildType.AsOneObject] เพื่อปิดโหมดการเคลื่อนไหว By Paragraphs.
  3. ตั้งค่าที่ใหม่สำหรับ property [setAnimateTextType(int value)] และ [setDelayBetweenTextParts(float value)].
  4. บันทึกไฟล์ PPTX ที่แก้ไขแล้ว.

โค้ด Java นี้สาธิตการดำเนินการ:

// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ.
Presentation pres = new Presentation("AnimTextBox_out.pptx");
try {
    ISlide firstSlide = pres.getSlides().get_Item(0);

    // ดึงเอฟเฟกต์แรกของลำดับหลัก
    IEffect firstEffect = firstSlide.getTimeline().getMainSequence().get_Item(0);

    // เปลี่ยนประเภทการเคลื่อนที่ข้อความของเอฟเฟกต์เป็น "As One Object"
    firstEffect.getTextAnimation().setBuildType(BuildType.AsOneObject);

    // เปลี่ยนประเภท Animate text ของเอฟเฟกต์เป็น "By word"
    firstEffect.setAnimateTextType(AnimateTextType.ByWord);

    // ตั้งค่าการหน่วงเวลาระหว่างคำเป็น 20% ของระยะเวลาเอฟเฟกต์
    firstEffect.setDelayBetweenTextParts(20f);

    // บันทึกไฟล์ PPTX ลงดิสก์
    pres.save("AnimTextBox_AnimateText.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

คำถามที่พบบ่อย

ฉันจะทำอย่างไรเพื่อให้แน่ใจว่าการเคลื่อนไหวยังคงอยู่เมื่อนำเสนอบนเว็บ?

Export to HTML5 และเปิดใช้งาน options ที่รับผิดชอบต่อการเคลื่อนไหวของ shape และ transition. HTML ธรรมดาไม่เล่นการเคลื่อนไหวของสไลด์ ในขณะที่ HTML5 ทำได้.

การเปลี่ยนลำดับชั้น (z-order) ของรูปทรงมีผลต่อการเคลื่อนไหวอย่างไร?

การเคลื่อนไหวและลำดับการวาดเป็นเรื่องแยกกัน: เอฟเฟกต์กำหนดเวลาและประเภทของการปรากฏ/หายไป ในขณะที่ z-order กำหนดว่าอะไรจะบังอะไร ผลลัพธ์ที่เห็นกำหนดโดยการผสมผสานของทั้งสอง (นี่คือพฤติกรรมทั่วไปของ PowerPoint; โมเดล effects-and-shapes ของ Aspose.Slides ทำตามตรรกะเดียวกัน).

มีข้อจำกัดในการแปลงการเคลื่อนไหวเป็นวีดีโอสำหรับเอฟเฟกต์บางอย่างหรือไม่?

โดยทั่วไป การเคลื่อนไหวได้รับการสนับสนุน, แต่ในกรณีบางกรณีที่หายากหรือเอฟเฟกต์เฉพาะอาจแสดงผลแตกต่างออกไป แนะนำให้ทดสอบกับเอฟเฟกต์ที่คุณใช้และกับเวอร์ชันของไลบรารี.