تحريك الشكل
التحريكات هي تأثيرات بصرية يمكن تطبيقها على النصوص، الصور، الأشكال، أو المخططات. إنها تعطي الحياة للعروض التقديمية أو مكوناتها.
لماذا نستخدم التحريكات في العروض التقديمية؟
باستخدام التحريكات، يمكنك
- التحكم في تدفق المعلومات
- التأكيد على النقاط المهمة
- زيادة الاهتمام أو المشاركة بين جمهورك
- جعل المحتوى أسهل في القراءة أو الاستيعاب أو المعالجة
- جذب انتباه قرائك أو مشاهدينك إلى الأجزاء المهمة في العرض التقديمي
يوفر باوربوينت العديد من الخيارات والأدوات للتحريكات وتأثيرات التحريك عبر فئات الدخول، الخروج، التأكيد، ومسارات الحركة.
التحريكات في Aspose.Slides
- توفر Aspose.Slides الفئات والأنواع التي تحتاجها للعمل مع التحريكات تحت مساحة الأسماء
Aspose.Slides.Animation
، - توفر Aspose.Slides أكثر من 150 تأثير تحريك تحت تعداد EffectType. هذه التأثيرات هي أساساً نفس التأثيرات المستخدمة في باوربوينت.
تطبيق التحريك على TextBox
تسمح لك Aspose.Slides لجافا بتطبيق التحريك على النص في شكل.
- قم بإنشاء مثيل من فئة Presentation.
- احصل على مرجع الشريحة من خلال فهرسها.
- أضف IAutoShape “مستطيل”.
- أضف نصًا إلى IAutoShape.TextFrame.
- احصل على تسلسل رئيسي من التأثيرات.
- أضف تأثير تحريك إلى IAutoShape.
- قم بتعيين خاصية
TextAnimation.BuildType
إلى القيمة من تعدادBuildType
. - قم بكتابة العرض التقديمي إلى القرص كملف PPTX.
يعرض هذا الرمز جافا كيفية تطبيق تأثير Fade
على AutoShape وضبط تحريك النص إلى قيمة 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("الفقرة الأولى \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();
}
تطبيق التحريك على PictureFrame
- قم بإنشاء مثيل من فئة Presentation.
- احصل على مرجع الشريحة من خلال فهرسها.
- أضف أو احصل على PictureFrame على الشريحة.
- احصل على التسلسل الرئيسي من التأثيرات.
- أضف تأثير تحريك إلى PictureFrame.
- قم بكتابة العرض التقديمي إلى القرص كملف PPTX.
يعرض هذا الرمز جافا كيفية تطبيق تأثير 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 من اليسار إلى إطار الصورة
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.
- احصل على مرجع الشريحة من خلال فهرسها.
- أضف IAutoShape “مستطيل”.
- أضف IAutoShape “Bevel” (عند النقر على هذا الكائن، يتم تشغيل التحريك).
- أنشئ تسلسل التأثيرات على شكل bevel.
- أنشئ
UserPath
مخصص. - أضف أوامر للتحرك إلى
UserPath
. - اكتب العرض التقديمي إلى القرص كملف PPTX.
يعرض هذا الرمز جافا كيفية تطبيق تأثير 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();
}
الحصول على تأثيرات التحريك المطبقة على الشكل
يمكنك أن تقرر معرفة جميع تأثيرات التحريك المطبقة على شكل واحد.
يعرض هذا الرمز جافا كيفية الحصول على جميع التأثيرات المطبقة على شكل محدد:
// يقوم بإنشاء فئة العرض التقديمي التي تمثل ملف عرض تقديمي.
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 لجافا بتغيير خصائص توقيت تأثير التحريك.
هذه هي لوحة توقيت التحريك في Microsoft PowerPoint:
هذه هي العلاقات بين توقيت باوربوينت وخصائص Effect.Timing :
- قائمة السقوط الخاصة بتوقيت باوربوينت بدء تتطابق مع خاصية Effect.Timing.TriggerType .
- المدة في توقيت باوربوينت تتطابق مع خاصية Effect.Timing.Duration . مدة التحريك (بالثواني) هي الوقت الإجمالي المستغرق لإكمال التحريك دورة واحدة.
- التأخير في توقيت باوربوينت تتطابق مع خاصية Effect.Timing.TriggerDelayTime .
هذه هي كيفية تغيير خصائص توقيت التأثير:
- تطبيق أو الحصول على تأثير التحريك.
- تعيين قيم جديدة لخصائص Effect.Timing التي تحتاجها.
- احفظ ملف PPTX المعدل.
يعرض هذا الكود الجافا العملية:
// يقوم بإنشاء فئة العرض التقديمي التي تمثل ملف عرض تقديمي.
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 هذه الخصائص للسماح لك بالعمل مع الأصوات في تأثيرات التحريك:
إضافة صوت تأثير التحريك
يعرض هذا الرمز الجافا كيفية إضافة صوت تأثير التحريك وإيقافه عند بدء التأثير التالي:
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) المدمج في كل تأثير تحريك.
يعرض هذا الرمز الجافا كيفية استخراج الصوت المدمج في تأثير التحريك:
// يقوم بإنشاء فئة العرض التقديمي التي تمثل ملف عرض تقديمي.
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 لجافا بتغيير خاصية بعد التحريك لتأثير التحريك.
هذه هي لوحة تأثير التحريك والقائمة الممتدة في Microsoft PowerPoint:
تتطابق قائمة بعد التحريك في باوربوينت مع هذه الخصائص:
- setAfterAnimationType(int value) الخاصية التي تصف نوع بعد التحريك :
- تتطابق خاصية ألوان إضافية في باوربوينت مع نوع AfterAnimationType.Color ؛
- تتطابق خاصية لا تخفف مع عنصر قائمة AfterAnimationType.DoNotDim (افتراضي بعد نوع التحريك)؛
- تتطابق خاصية إخفاء بعد التحريك مع عنصر AfterAnimationType.HideAfterAnimation ؛
- تتطابق خاصية إخفاء عند النقر بالماوس التالي مع AfterAnimationType.HideOnNextMouseClick نوع؛
- setAfterAnimationColor(IColorFormat value) الخاصية التي تحدد تنسيق لون بعد التحريك. تعمل هذه الخاصية بالتعاون مع نوع AfterAnimationType.Color . إذا قمت بتغيير النوع إلى آخر، سيتم مسح لون بعد التحريك.
يعرض هذا الرمز الجافا كيفية تغيير تأثير بعد التحريك:
// يقوم بإنشاء فئة العرض التقديمي التي تمثل ملف عرض تقديمي
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 المعدل.
يعرض هذا الرمز الجافا العملية:
// يقوم بإنشاء فئة العرض التقديمي التي تمثل ملف عرض تقديمي.
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();
}