ใช้แอนิเมชันรูปทรงในงานนำเสนอด้วย PHP

บทนำ

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

ทำไมจึงใช้แอนิเมชันในการนำเสนอ?

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

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

แอนิเมชันใน Aspose.Slides

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

ใช้แอนิเมชันกับ TextBox

Aspose.Slides for PHP via Java อนุญาตให้คุณใช้แอนิเมชันกับข้อความในรูปทรง.

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

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

  # สร้างอินสแตนซ์ของคลาสการนำเสนอที่เป็นตัวแทนของไฟล์การนำเสนอ
  $pres = new Presentation();
  try {
    $sld = $pres->getSlides()->get_Item(0);
    # เพิ่ม AutoShape ใหม่พร้อมข้อความ
    $autoShape = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 20, 150, 100);
    $textFrame = $autoShape->getTextFrame();
    $textFrame->setText("First paragraph \nSecond paragraph \n Third paragraph");
    # รับลำดับหลักของสไลด์
    $sequence = $sld->getTimeline()->getMainSequence();
    # เพิ่มเอฟเฟกต์แอนิเมชัน Fade ให้กับรูปทรง
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

ใช้แอนิเมชันกับ PictureFrame

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

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

  # สร้างอินสแตนซ์ของคลาสการนำเสนอที่เป็นตัวแทนของไฟล์การนำเสนอ
  $pres = new Presentation();
  try {
    # โหลดภาพเพื่อเพิ่มในคอลเลกชันรูปภาพของการนำเสนอ
    $picture;
    $image = Images->fromFile("aspose-logo.jpg");
    try {
      $picture = $pres->getImages()->addImage($image);
    } finally {
      if (!java_is_null($image)) {
        $image->dispose();
      }
    }
    # เพิ่มเฟรมรูปภาพลงสไลด์
    $picFrame = $pres->getSlides()->get_Item(0)->getShapes()->addPictureFrame(ShapeType::Rectangle, 50, 50, 100, 100, $picture);
    # รับลำดับหลักของสไลด์
    $sequence = $pres->getSlides()->get_Item(0)->getTimeline()->getMainSequence();
    # เพิ่มเอฟเฟกต์แอนิเมชัน Fly จากด้านซ้ายให้กับเฟรมรูปภาพ
    $effect = $sequence->addEffect($picFrame, EffectType::Fly, EffectSubType::Left, EffectTriggerType::OnClick);
    # บันทึกไฟล์ PPTX ลงดิสก์
    $pres->save($path . "AnimImage_out.pptx", SaveFormat::Pptx);
  } catch (JavaException $e) {
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

ใช้แอนิเมชันกับ Shape

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

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

  # สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์ PPTX.
  $pres = new Presentation();
  try {
    $sld = $pres->getSlides()->get_Item(0);
    # สร้างเอฟเฟกต์ PathFootball สำหรับรูปทรงที่มีอยู่ตั้งแต่ต้น.
    $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);
    # สร้าง "ปุ่ม" ประเภทหนึ่ง.
    $shapeTrigger = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Bevel, 10, 10, 20, 20);
    # สร้างลำดับของเอฟเฟกต์สำหรับปุ่มนี้.
    $seqInter = $pres->getSlides()->get_Item(0)->getTimeline()->getInteractiveSequences()->add($shapeTrigger);
    # สร้างเส้นทางผู้ใช้แบบกำหนดเอง วัตถุของเราจะย้ายเฉพาะหลังจากคลิกปุ่มเท่านั้น.
    $fxUserPath = $seqInter->addEffect($ashp, EffectType::PathUser, EffectSubType::None, EffectTriggerType::OnClick);
    # เพิ่มคำสั่งการย้ายเนื่องจากเส้นทางที่สร้างไว้ว่างเปล่า.
    $motionBhv = $fxUserPath->getBehaviors()->get_Item(0);
    $pts = new Point2DFloat[1];
    $pts[0] = new Point2DFloat(0.076, 0.59);
    $motionBhv->getPath()->add(MotionCommandPathType::LineTo, $pts, MotionPathPointsType::Auto, true);
    $pts[0] = new Point2DFloat(-0.076, -0.59);
    $motionBhv->getPath()->add(MotionCommandPathType::LineTo, $pts, MotionPathPointsType::Auto, false);
    $motionBhv->getPath()->add(MotionCommandPathType::End, null, MotionPathPointsType::Auto, false);
    # เขียนไฟล์ PPTX ลงดิสก์
    $pres->save("AnimExample_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

รับเอฟเฟกต์แอนิเมชันที่ใช้กับ Shape

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

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

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

  $Array = new java_class("java.lang.reflect.Array");
  $presentation = new Presentation("AnimExample_out.pptx");

  try {
    $firstSlide = $presentation->getSlides()->get_Item(0);

    # รับลำดับแอนิเมชันหลักของสไลด์.
    $sequence = $firstSlide->getTimeline()->getMainSequence();

    # รับรูปทรงแรกบนสไลด์แรก.
    $shape = $firstSlide->getShapes()->get_Item(0);

    # รับเอฟเฟกต์แอนิเมชันที่ใช้กับรูปทรง.
    $shapeEffects = $sequence->getEffectsByShape($shape);

    if (java_values($Array->getLength($shapeEffects)) > 0) {
      echo("The shape " . $shape->getName() . " has " . $Array->getLength($shapeEffects) . " animation effects.");
    }
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

ตัวอย่างที่ 2: รับเอฟเฟกต์แอนิเมชันทั้งหมด รวมถึงที่สืบทอดจาก Placeholder

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

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

เอฟเฟกต์แอนิเมชันของ Shape สไลด์

ให้สมมติเพิ่มเติมว่าเอฟเฟกต์ Split ถูกใช้กับ Placeholder ส่วนท้ายบนสไลด์ layout.

เอฟเฟกต์แอนิเมชันของ Shape ใน Layout

และสุดท้ายเอฟเฟกต์ Fly In ถูกใช้กับ Placeholder ส่วนท้ายบนสไลด์ master.

เอฟเฟกต์แอนิเมชันของ Shape ใน Master

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

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

$slide = $presentation->getSlides()->get_Item(0);

// รับเอฟเฟกต์แอนิเมชันของรูปทรงบนสไลด์ปกติ.
$shape = $slide->getShapes()->get_Item(0);
$shapeEffects = $slide->getTimeline()->getMainSequence()->getEffectsByShape($shape);

// รับเอฟเฟกต์แอนิเมชันของ placeholder บนสไลด์เลย์เอาต์.
$layoutShape = $shape->getBasePlaceholder();
$layoutShapeEffects = $slide->getLayoutSlide()->getTimeline()->getMainSequence()->getEffectsByShape($layoutShape);

// รับเอฟเฟกต์แอนิเมชันของ placeholder บนสไลด์มาสเตอร์.
$masterShape = $layoutShape->getBasePlaceholder();
$masterShapeEffects = $slide->getLayoutSlide()->getMasterSlide()->getTimeline()->getMainSequence()->getEffectsByShape($masterShape);

echo "Main sequence of shape effects:" . PHP_EOL;
printEffects($masterShapeEffects);
printEffects($layoutShapeEffects);
printEffects($shapeEffects);

$presentation->dispose();
function printEffects($effects) {
    foreach ($effects as $effect) {
        echo "Type: " . $effect->getType() . ", subtype: " . $effect->getSubtype() . PHP_EOL;
    }
}
Main sequence of shape effects:
Type: 47, subtype: 2              // บิน, ด้านล่าง
Type: 134, subtype: 45            // แยก, แนวตั้งเข้า
Type: 126, subtype: 22            // แถบสุ่ม, แนวนอน

วิธีการเปลี่ยนเวลาเอฟเฟกต์แอนิเมชัน

Aspose.Slides for PHP via Java อนุญาตให้คุณเปลี่ยนคุณสมบัติ Timing ของเอฟเฟกต์แอนิเมชัน

นี่คือแผง Animation Timing ใน Microsoft PowerPoint: แผง Animation Timing

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

  • ค่าลดลง (drop-down) Start ของ PowerPoint Timing ตรงกับเมธอด Timing::getTriggerType
  • Duration ของ PowerPoint Timing ตรงกับเมธอด Timing::getDuration ระยะเวลาของแอนิเมชัน (เป็นวินาที) คือเวลาทั้งหมดที่แอนิเมชันใช้ในการทำครบหนึ่งรอบ
  • Delay ของ PowerPoint Timing ตรงกับเมธอด Timing::getTriggerDelayTime

วิธีการเปลี่ยนคุณสมบัติ Effect Timing มีดังนี้:

  1. Apply หรือรับเอฟเฟกต์แอนิเมชัน
  2. ตั้งค่าตัวใหม่ที่ต้องการโดยใช้เมธอด Effect::getTiming
  3. บันทึกไฟล์ PPTX ที่แก้ไขแล้ว

โค้ด PHP นี้สาธิตการทำงาน:

  # สร้างอินสแตนซ์ของคลาสการนำเสนอที่เป็นตัวแทนของไฟล์การนำเสนอ.
  $pres = new Presentation("AnimExample_out.pptx");
  try {
    # รับลำดับหลักของสไลด์.
    $sequence = $pres->getSlides()->get_Item(0)->getTimeline()->getMainSequence();
    # รับเอฟเฟกต์แรกของลำดับหลัก.
    $effect = $sequence->get_Item(0);
    # เปลี่ยน TriggerType ของเอฟเฟกต์ให้เริ่มเมื่อคลิก
    $effect->getTiming()->setTriggerType(EffectTriggerType::OnClick);
    # เปลี่ยนระยะเวลาเอฟเฟกต์
    $effect->getTiming()->setDuration(3.0);
    # เปลี่ยน TriggerDelayTime ของเอฟเฟกต์
    $effect->getTiming()->setTriggerDelayTime(0.5);
    # บันทึกไฟล์ PPTX ลงดิสก์
    $pres->save("AnimExample_changed.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

เสียงของเอฟเฟกต์แอนิเมชัน

Aspose.Slides มีเมธอดต่อไปนี้เพื่อให้คุณทำงานกับเสียงในเอฟเฟกต์แอนิเมชัน:

เพิ่มเสียงให้กับเอฟเฟกต์แอนิเมชัน

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

  $pres = new Presentation("AnimExample_out.pptx");
  try {
    # เพิ่มเสียงลงในคอลเลกชันเสียงของการนำเสนอ
$Array = new JavaClass("java.lang.reflect.Array");
$Byte = (new JavaClass("java.lang.Byte"))->TYPE;
try {
    $dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", "sampleaudio.wav"));
    $bytes = $Array->newInstance($Byte, $dis->available());
    $dis->readFully($bytes);
} finally {
    if (!java_is_null($dis)) $dis->close();
}
    $effectSound = $pres->getAudios()->addAudio($bytes);

    $firstSlide = $pres->getSlides()->get_Item(0);
    # รับลำดับหลักของสไลด์.
    $sequence = $firstSlide->getTimeline()->getMainSequence();
    # รับเอฟเฟ็กต์แรกของลำดับหลัก
    $firstEffect = $sequence->get_Item(0);
    # ตรวจสอบว่าเอฟเฟ็กต์ไม่มีเสียงหรือไม่
    if (java_is_null(!$firstEffect->getStopPreviousSound() && $firstEffect->getSound())) {
      # เพิ่มเสียงให้กับเอฟเฟ็กต์แรก
      $firstEffect->setSound($effectSound);
    }
    # รับลำดับอินเทอร์แอคทีฟแรกของสไลด์.
    $interactiveSequence = $firstSlide->getTimeline()->getInteractiveSequences()->get_Item(0);
    # ตั้งค่าสถานะ "หยุดเสียงก่อนหน้า" ของเอฟเฟ็กต์
    $interactiveSequence->get_Item(0)->setStopPreviousSound(true);
    # บันทึกไฟล์ PPTX ลงดิสก์
    $pres->save("AnimExample_Sound_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

สกัดเสียงจากเอฟเฟกต์แอนิเมชัน

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

โค้ด PHP นี้แสดงวิธีสกัดเสียงที่ฝังอยู่ในเอฟเฟกต์แอนิเมชัน:

  # สร้างอินสแตนซ์ของคลาสการนำเสนอที่เป็นตัวแทนของไฟล์การนำเสนอ.
  $presentation = new Presentation("EffectSound.pptx");
  try {
    $slide = $presentation->getSlides()->get_Item(0);
    # รับลำดับหลักของสไลด์.
    $sequence = $slide->getTimeline()->getMainSequence();
    foreach($sequence as $effect) {
      if (java_is_null($effect->getSound())) {
        continue;
      }
      # แยกเสียงเอฟเฟกต์เป็นอาร์เรย์ไบต์
      $audio = $effect->getSound()->getBinaryData();
    }
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

หลังจากแอนิเมชัน

Aspose.Slides for PHP via Java อนุญาตให้คุณเปลี่ยนคุณสมบัติ After animation ของเอฟเฟกต์แอนิเมชัน

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

ค่า drop-down After animation ของ PowerPoint Effect ตรงกับเมธอดต่อไปนี้:

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

  # สร้างอินสแตนซ์ของคลาสการนำเสนอที่เป็นตัวแทนของไฟล์การนำเสนอ
  $pres = new Presentation("AnimImage_out.pptx");
  try {
    $firstSlide = $pres->getSlides()->get_Item(0);
    # รับเอฟเฟ็กต์แรกของลำดับหลัก
    $firstEffect = $firstSlide->getTimeline()->getMainSequence()->get_Item(0);
    # เปลี่ยนประเภท after animation เป็นสี
    $firstEffect->setAfterAnimationType(AfterAnimationType::Color);
    # ตั้งค่าสีของ after animation
    $firstEffect->getAfterAnimationColor()->setColor(java("java.awt.Color")->BLUE);
    # บันทึกไฟล์ PPTX ลงดิสก์
    $pres->save("AnimImage_AfterAnimation.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

แอนิเมตข้อความ

Aspose.Slides มีเมธอดต่อไปนี้เพื่อให้คุณทำงานกับบล็อก Animate text ของเอฟเฟกต์แอนิเมชัน:

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

วิธีการเปลี่ยนคุณสมบัติ Effect Animate text มีดังนี้:

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

โค้ด PHP นี้สาธิตการทำงาน:

  # สร้างอินสแตนซ์ของคลาสการนำเสนอที่เป็นตัวแทนของไฟล์การนำเสนอ.
  $pres = new Presentation("AnimTextBox_out.pptx");
  try {
    $firstSlide = $pres->getSlides()->get_Item(0);
    # รับเอฟเฟกต์แรกของลำดับหลัก
    $firstEffect = $firstSlide->getTimeline()->getMainSequence()->get_Item(0);
    # เปลี่ยนประเภทการแอนิเมชันข้อความของเอฟเฟกต์เป็น "As One Object"
    $firstEffect->getTextAnimation()->setBuildType(BuildType::AsOneObject);
    # เปลี่ยนประเภทการแอนิเมตข้อความของเอฟเฟกต์เป็น "By word"
    $firstEffect->setAnimateTextType(AnimateTextType::ByWord);
    # ตั้งค่าการหน่วงเวลาระหว่างคำเป็น 20% ของระยะเวลาเอฟเฟกต์
    $firstEffect->setDelayBetweenTextParts(20.0);
    # บันทึกไฟล์ PPTX ลงดิสก์
    $pres->save("AnimTextBox_AnimateText.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

การเปลี่ยนลำดับ z-order (ลำดับชั้น) ของ Shape มีผลต่อแอนิเมชันอย่างไร?

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

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

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