powerpoint рограмматически добавляет анимацию текстового поля, запускаемую закладкой в ​​медиаобъекте - PullRequest
2 голосов
/ 19 августа 2010

Я пытаюсь программно добавить эффект затухания в текстовое поле, которое вызывается закладкой в ​​медиаобъекте, например в фильме. Поэтому, когда фильм воспроизводится и достигает закладки, появится текстовое поле с эффектом затухания.

Я получил возможность добавлять текстовое поле на слайд и добавлять закладки в форму медиаобъекта, например, используя следующий код

Теперь, где я должен добавить эффект затухания? VSTO или VBA код действительно поможет! это все в офисе 14

    var application = Globals.ThisAddIn.Application;
    PowerPoint.Slide activeSlide = application.ActiveWindow.View.Slide;
    PowerPoint.Shape selectedShape = application.ActiveWindow.Selection.ShapeRange[1];

    selectedShape.MediaFormat.MediaBookmarks.Add(2000, "Bookmark A");
    selectedShape.MediaFormat.MediaBookmarks.Add(5000, "Bookmark B");
    selectedShape.MediaFormat.MediaBookmarks.Add(9000, "Bookmark C");

    PowerPoint.Shape textBox1 = activeSlide.Shapes.AddTextbox(Office.MsoTextOrientation.msoTextOrientationHorizontal, 0, 0, 500, 50);
    textBox1.Name = "TextBox1";
    textBox1.TextFrame.TextRange.InsertAfter("TextBox1 text");

    PowerPoint.Shape textBox2 = activeSlide.Shapes.AddTextbox(Office.MsoTextOrientation.msoTextOrientationHorizontal, 0, 30, 500, 50);
    textBox2.Name = "TextBox2";
    textBox2.TextFrame.TextRange.InsertAfter("TextBox2 text");

Ответы [ 2 ]

3 голосов
/ 19 августа 2010

Взгляните на страницу Shyam Pillai здесь Формат мультимедиа и закладки с кодом VBA для добавления анимации в закладки объекта MediaFormat.

1 голос
/ 20 августа 2010

Спасибо, что код Shyam указал мне правильное направление, просто нужно было прочитать его правильно! Вот что сработало для меня, что я получил от Шьяма.

Второй триггерный эффект фактически противоположен первому, выходя из фейдера, обратите внимание на Выход в конце, опять же, благодаря Shyam.

        activeSlide.TimeLine.InteractiveSequences.Add().AddTriggerEffect(
            textBox2,
            MsoAnimEffect.msoAnimEffectFade,
            MsoAnimTriggerType.msoAnimTriggerOnMediaBookmark,
            selectedShape,
            "Bookmark A",
            MsoAnimateByLevel.msoAnimateLevelNone);   

        activeSlide.TimeLine.InteractiveSequences.Add().AddTriggerEffect(
            textBox2,
            MsoAnimEffect.msoAnimEffectFade,
            MsoAnimTriggerType.msoAnimTriggerOnMediaBookmark,
            selectedShape,
            "Bookmark B",
            MsoAnimateByLevel.msoAnimateLevelNone).Exit = MsoTriState.msoTrue;
...