我正在进行演示,并以以下方式添加了动画图形:
\animategraphics[scale=0.4,autoplay]{8}{movie}{000}{200}
如您所见,这是自动播放的。但我希望以以下方式播放:
我使用演示工具,可以单击“下一张幻灯片”和“上一张幻灯片”。因此,此工具只是模仿您通常用来单击下一张/上一张幻灯片的左光标和右光标。当我单击“下一张幻灯片”时,如何告诉 LaTex 播放动画。使用演示者可以做到这一点吗?
编辑:
忽略演示者,正确使用光标的解决方案就可以了!
答案1
放
\alt<2>{%
\animategraphics[scale=0.4,autoplay]{8}{movie}{000}{200}%
}{%
\includegraphics[scale=0.4]{movie000}%
}
进入框体。
使用 pkg 中的多页 PDFmwe
作为动画帧的完整示例:
\documentclass{beamer}
\usepackage{animate}
\begin{document}
\begin{frame}[t]{Animation}
\dots started on ``next slide'':\\[2ex]
\alt<2>{%
\animategraphics[height=2in,autoplay]{8}{example-image-a4-numbered}{}{}%
}{%
\includegraphics[height=2in,page=1]{example-image-a4-numbered}%
}
\end{frame}
\end{document}
答案2
此解决方法描述了一种避免代码重复的简单方法:
- 变量
\myframe
定义组成动画的帧数 overlay 命令会根据您所在的(投影机)框架覆盖相应
\only
的值。\myframe
\documentclass{beamer} \usepackage{default} \usepackage{tikz} \usepackage{animate} \usepackage{xcolor} \begin{document} \begin{frame}{autoplay next slide example} %% variable myframe decides how many frames the animation is composed of \only<1>{\def\myframes{1}} \only<2>{\def\myframes{81}} \begin{animateinline}[poster=first,autoplay]{12}% %% variable rl defines the percentual variation in the position of the moving object \multiframe{\myframes}{rl=0+.0125}{% \begin{tikzpicture} \clip (-.5,-.5) rectangle (10,7); %% visible rectangle \draw[draw=black, fill=black] (1+3*\rl, 2+4*\rl) circle (3pt); \end{tikzpicture} } \end{animateinline} \end{frame} \end{document}
答案3
我一直在努力完成这项工作,因为我无法将 AlexG 的解决方案应用到我想要使用的每个动画中 —— 这需要将每个动画分成第一帧和其他帧,或者在动画开始之前有一些其他的人工幻灯片。
就我的目的而言,没有控制
\begin{animateinline}[autoplay, loop, method=widget]
使出了绝招
答案4
我实现了第一个蛮力解决方案,这不是该问题的真正技术解决方案,但不知何故它是该问题的解决方案:
我只是复制了框架,并改变了之前的框架\includegraphics.
然后我在包含动画的下一帧之前添加了一个
\addtocounter{framenumber}{-1}
因此,当我单击下一张幻灯片时,就会出现下一张幻灯片,并且会自动播放。
(其他没有变化,帧数相同,因此观众应该不会注意到)