تحريك الأشكال
الرسوم المتحركة هي تأثيرات بصرية يمكن تطبيقها على النصوص والصور والأشكال أو الرسوم البيانية. إنها تضيف الحياة للعروض التقديمية أو مكوناتها.
لماذا استخدام الرسوم المتحركة في العروض التقديمية؟
باستخدام الرسوم المتحركة، يمكنك
- التحكم في تدفق المعلومات
- التأكيد على النقاط المهمة
- زيادة الاهتمام أو المشاركة بين جمهورك
- تسهيل قراءة المحتوى أو استيعابه أو معالجته
- جذب انتباه القراء أو المشاهدين إلى أجزاء مهمة في العرض التقديمي
يوفر PowerPoint العديد من الخيارات والأدوات للرسوم المتحركة وتأثيرات الرسوم المتحركة عبر فئات الدخول، الخروج، التأكيد، ومسارات الحركة.
الرسوم المتحركة في Aspose.Slides
- توفر Aspose.Slides الفئات والأنواع التي تحتاجها للعمل مع الرسوم المتحركة ضمن مساحة الأسماء
Aspose.Slides.Animation
، - توفر Aspose.Slides أكثر من 150 تأثير رسوم متحركة ضمن تعداد EffectType. هذه التأثيرات هي في الأساس نفس التأثيرات (أو المكافئة) المستخدمة في PowerPoint.
تطبيق الرسوم المتحركة على صندوق النص
تسمح Aspose.Slides لـ Android عبر Java بتطبيق الرسوم المتحركة على النص في شكل.
- قم بإنشاء مثيل من فئة Presentation.
- احصل على مرجع الشريحة من خلال فهرسها.
- أضف شكل آلي
مستطيل
. - أضف نصًا إلى IAutoShape.TextFrame.
- احصل على تسلسل رئيسي للتأثيرات.
- أضف تأثير الرسوم المتحركة إلى IAutoShape.
- اضبط خاصية
TextAnimation.BuildType
على القيمة من تعدادBuildType
. - اكتب العرض التقديمي على القرص كملف PPTX.
هذا الكود بلغة Java يوضح لك كيفية تطبيق تأثير Fade
على الشكل الآلي وضبط الرسوم المتحركة للنص على قيمة حسب فقرات المستوى الأول:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم.
Presentation pres = new Presentation();
try {
ISlide sld = pres.getSlides().get_Item(0);
// يضيف شكل آلي جديد مع نص
IAutoShape autoShape = sld.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 100);
ITextFrame textFrame = autoShape.getTextFrame();
textFrame.setText("الفقرة الأولى \nالفقرة الثانية \nالفقرة الثالثة");
// يحصل على التسلسل الرئيسي للشريحة.
ISequence sequence = sld.getTimeline().getMainSequence();
// يضيف تأثير رسوم متحركة Fade إلى الشكل
IEffect effect = sequence.addEffect(autoShape, EffectType.Fade, EffectSubtype.None, EffectTriggerType.OnClick);
// يحرك نص الشكل حسب فقرات المستوى الأول
effect.getTextAnimation().setBuildType(BuildType.ByLevelParagraphs1);
// يحفظ ملف PPTX على القرص
pres.save(path + "AnimText_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
تطبيق الرسوم المتحركة على إطار الصورة
- قم بإنشاء مثيل من فئة Presentation.
- احصل على مرجع الشريحة من خلال فهرسها.
- أضف أو احصل على إطار صورة على الشريحة.
- احصل على التسلسل الرئيسي للتأثيرات.
- أضف تأثير الرسوم المتحركة إلى PictureFrame.
- اكتب العرض التقديمي على القرص كملف PPTX.
هذا الكود بلغة Java يوضح لك كيفية تطبيق تأثير Fly
على إطار الصورة:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم.
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 from Left إلى إطار الصورة
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();
}
تطبيق الرسوم المتحركة على الشكل
- قم بإنشاء مثيل من فئة Presentation.
- احصل على مرجع الشريحة من خلال فهرسها.
- أضف شكل آلي
مستطيل
. - أضف شكل مائل (عندما يتم النقر على هذا الكائن، يتم تشغيل الرسوم المتحركة).
- أنشئ تسلسل التأثيرات على الشكل المائل.
- أنشئ
UserPath
مخصص. - أضف أوامر للتحرك إلى
UserPath
. - اكتب العرض التقديمي على القرص كملف PPTX.
هذا الكود بلغة Java يوضح لك كيفية تطبيق تأثير PathFootball
(تأثير كرة القدم) على شكل:
// يثبت فئة العرض التقديمي التي تمثل ملف 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("صندوق نص متحرك");
// يضيف تأثير الرسوم المتحركة 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 motionBhv = ((IMotionEffect)fxUserPath.getBehaviors().get_Item(0));
Point2D.Float[] pts = new Point2D.Float[1];
pts[0] = new Point2D.Float(0.076f, 0.59f);
motionBhv.getPath().add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, true);
pts[0] = new Point2D.Float(-0.076f, -0.59f);
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 (pres != null) pres.dispose();
}
الحصول على تأثيرات الرسوم المتحركة المطبقة على الشكل
يمكنك أن تقرر معرفة جميع تأثيرات الرسوم المتحركة المطبقة على شكل واحد.
هذا الكود بلغة Java يوضح لك كيفية الحصول على جميع التأثيرات المطبقة على شكل محدد:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم.
Presentation pres = new Presentation("AnimExample_out.pptx");
try {
ISlide firstSlide = pres.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("الشكل " + shape.getName() + " لديه " + shapeEffects.length + " تأثيرات رسوم متحركة.");
} finally {
if (pres != null) pres.dispose();
}
تغيير خصائص توقيت تأثير الرسوم المتحركة
تسمح Aspose.Slides لـ Android عبر Java بتغيير خصائص توقيت تأثير الرسوم المتحركة.
هذا هو صندوق توقيت الرسوم المتحركة في Microsoft PowerPoint:
هذه هي المطابقات بين توقيت PowerPoint وخصائص Effect.Timing:
- قائمة السحب لتوقيت PowerPoint البداية تتطابق مع خاصية Effect.Timing.TriggerType .
- توقيت PowerPoint المدة يتطابق مع خاصية Effect.Timing.Duration . مدة الرسوم المتحركة (بالثواني) هي الوقت الإجمالي الذي يستغرقه التأثير لإكمال دورة واحدة.
- توقيت PowerPoint التأخير يتطابق مع خاصية Effect.Timing.TriggerDelayTime .
هذه هي كيفية تغيير خصائص توقيت التأثير:
- تطبيق أو الحصول على تأثير الرسوم المتحركة.
- تعيين قيم جديدة لخصائص Effect.Timing التي تحتاجها.
- حفظ ملف PPTX المعدل.
يوضح هذا الكود بلغة Java العملية:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم.
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);
// يغير مدة التأثير
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 هذه الخصائص للسماح لك بالعمل مع الأصوات في تأثيرات الرسوم المتحركة:
إضافة صوت لتأثير الرسوم المتحركة
يوضح لك هذا الكود بلغة 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();
}
استخراج صوت تأثير الرسوم المتحركة
- قم بإنشاء مثيل من فئة Presentation .
- احصل على مرجع شريحة من خلال فهرسها.
- احصل على التسلسل الرئيسي للتأثيرات.
- قم باستخراج setSound(IAudio value) المضمن إلى كل تأثير رسوم متحركة.
يوضح لك هذا الكود بلغة Java كيفية استخراج الصوت المضمن في تأثير رسوم متحركة:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم.
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 لـ Android عبر Java بتغيير خاصية بعد الرسوم المتحركة لتأثير الرسوم المتحركة.
هذا هو صندوق تأثير الرسوم المتحركة والقائمة الموسعة في Microsoft PowerPoint:
تطابق قائمة السحب لتأثير PowerPoint بعد الرسوم المتحركة هذه الخصائص:
- خاصية setAfterAnimationType(int value) التي تصف نوع بعد الرسوم المتحركة:
- يتطابق PowerPoint ألوان إضافية مع النوع AfterAnimationType.Color ;
- يتطابق عنصر القائمة PowerPoint لا تخفف مع النوع AfterAnimationType.DoNotDim (نوع بعد الرسوم المتحركة الافتراضي) ;
- يتطابق عنصر القائمة PowerPoint اخفاء بعد الرسوم المتحركة مع النوع AfterAnimationType.HideAfterAnimation ;
- يتطابق عنصر القائمة PowerPoint اخفاء عند النقر التالي بالماوس مع النوع AfterAnimationType.HideOnNextMouseClick ;
- خاصية setAfterAnimationColor(IColorFormat value) التي تحدد تنسيق اللون بعد الرسوم المتحركة. تعمل هذه الخاصية بالتعاون مع النوع AfterAnimationType.Color . إذا قمت بتغيير النوع إلى آخر، سيتم مسح لون بعد الرسوم المتحركة.
يوضح هذا الكود بلغة Java كيفية تغيير تأثير بعد الرسوم المتحركة:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم
Presentation pres = new Presentation("AnimImage_out.pptx");
try {
ISlide firstSlide = pres.getSlides().get_Item(0);
// يحصل على أول تأثير في التسلسل الرئيسي
IEffect firstEffect = firstSlide.getTimeline().getMainSequence().get_Item(0);
// يغير نوع بعد الرسوم المتحركة إلى اللون
firstEffect.setAfterAnimationType(AfterAnimationType.Color);
// يضبط لون التخفيف بعد الرسوم المتحركة
firstEffect.getAfterAnimationColor().setColor(Color.BLUE);
// يكتب ملف PPTX على القرص
pres.save("AnimImage_AfterAnimation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
تحريك النص
توفر Aspose.Slides هذه الخصائص للسماح لك بالعمل مع كتلة تحريك النص لتأثير الرسوم المتحركة:
- setAnimateTextType(int value) التي تصف نوع تحريك النص للتأثير. يمكن تحريك نص الشكل:
- جميعها دفعة واحدة (AnimateTextType.AllAtOnce النوع)
- حسب الكلمة (AnimateTextType.ByWord النوع)
- حسب الحرف (AnimateTextType.ByLetter النوع)
- setDelayBetweenTextParts(float value) يحدد التأخير بين أجزاء النص المتحرك (الكلمات أو الحروف). تشير القيمة الإيجابية إلى نسبة من مدة التأثير. تشير القيمة السلبية إلى التأخير بالثواني.
هذه هي كيفية تغيير خصائص تأثير تحريك النص:
- تطبيق أو الحصول على تأثير الرسوم المتحركة.
- تعيين خاصية setBuildType(int value) على القيمة BuildType.AsOneObject لإيقاف وضع الرسوم المتحركة حسب الفقرات.
- تعيين قيم جديدة لخصائص setAnimateTextType(int value) و setDelayBetweenTextParts(float value) .
- حفظ ملف PPTX المعدل.
يوضح هذا الكود بلغة Java العملية:
// يثبت فئة العرض التقديمي التي تمثل ملف تقديم.
Presentation pres = new Presentation("AnimTextBox_out.pptx");
try {
ISlide firstSlide = pres.getSlides().get_Item(0);
// يحصل على أول تأثير في التسلسل الرئيسي
IEffect firstEffect = firstSlide.getTimeline().getMainSequence().get_Item(0);
// يغير نوع الرسوم المتحركة للتأثير إلى "ككل واحد"
firstEffect.getTextAnimation().setBuildType(BuildType.AsOneObject);
// يغير نوع تحريك النص للتأثير إلى "حسب الكلمة"
firstEffect.setAnimateTextType(AnimateTextType.ByWord);
// يضبط التأخير بين الكلمات إلى 20% من مدة التأثير
firstEffect.setDelayBetweenTextParts(20f);
// يكتب ملف PPTX على القرص
pres.save("AnimTextBox_AnimateText.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}