奇怪的是,嵌入的 swf 动画缺少缩放/调整大小功能

奇怪的是,嵌入的 swf 动画缺少缩放/调整大小功能

我是添加动画方面的新手。我正在取得进步,但似乎总是出现新问题。实际上这并不奇怪。无论如何。

系统:WinEdt 7.0,MikTeX 2.9,Windows 7

\documentclass{powerdot}

\usepackage{lmodern}
\usepackage[utf8]{inputenc}
%\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[finnish]{babel}

\usepackage{amsmath,amssymb}
%\usepackage{psfrag}
\usepackage{media9}

\begin{document}
\begin{slide}{Esimerkki D1}
Sykloidiksi kutsuttu käyrä on $x$-akselia pitkin sutimatta vierivän yksikköympyrän kehältä
kiinnitetyn yhden pisteen ympyrän pyöriessä piirtämä käyrä.
\includemedia[
      width=200pt,
      height=70pt,
      activate=pageopen,
    ]{}{sykloidi.swf}
\end{slide}
\end{document}

文件sykloidi这是绘制摆线的视频(由 Mathematica 生成,但可能无关紧要)。

以上内容通过 DVI->PS->PDF 路径编译成功。生成的 PDF 幻灯片集看起来不错,但当我开始在 Adob​​e Reader 中缩放时(进入全屏模式就足够了),我非常惊讶地发现动画区域的大小保持不变,缩放产生的间隙用黑色填充。

在我看来,这很奇怪。我确实在某种程度上意识到视频可能具有内置的不可缩放分辨率,但 SWF 是矢量图形,它应该可以缩放,对吗?

我尝试插入规模变量(赋予它一个适中的值,如 1.2),但这只会使周围的框变大(最终它会溢出幻灯片)。

那么 media9 中的缩放语法是如何工作的?我试图找到它在本文档中,但不幸的是,我不明白其中的道理。有没有类似“media9 for dummies”的东西可以推荐?谷歌搜索有一些结果,但文档提到了 Mac OS 中的外部程序,或者似乎依赖于 TikZ 或...

编辑 1:我对各种视频格式的内部结构一无所知。但在 Adob​​e Reader 中查看时,静止图像(无论它们最初是 .png 还是 .eps)会与文档的其余部分一起缩放,为什么视频会有所不同?我意识到问题可能出在其他地方,在这种情况下,我应该问,是否有人可以诊断问题。

编辑2:我需要的技术上正确的术语可能是可调整大小而不是可扩展。正如我所说,我不知道这些差异。

答案1

缩放行为(Stage.scaleMode属性,参见ActionScript-2 参考) 的 Mathematica 生成的 SWF 文件被硬编码为noScale

尽管 SWF 是二进制的,但文件中Stage.scaleMode定义的位置可以用一些文本编辑器进行编辑,例如vised。幸运的是,字符串noScale的长度与 相同showAll,我们可以用后者替换前者,而不会破坏 SWF 文件:

sed -i 's/noScale/showAll/' sykloidi.swf

showAll因为的值scaleMode将产生想要的行为。

答案2

以下是我使用 AlexG 的几条建议解决问题的方法。在此列出这些步骤,以防其他人以后在弄清楚如何将 Mathematica 动画移植到 powerdot/media9 幻灯片集时遇到问题。

  • 以 AVI 格式从 Mathematica 导出动画。Mathematica 的在线帮助为您提供了该命令的语法。
  • 使用此在线服务将 AVI 转换为 MP4。当然,还有其他方法可以做到这一点,但我发现 ffmpeg 有点吓人 :-)
  • 对于非常基本的功能,请使用如下代码片段:

    \includemedia[
          width=200pt,
          height=200pt,
          addresource=./sykloidi.mp4,
          activate=pageopen,
          flashvars={source=./sykloidi.mp4&loop=true}
        ]{}{VPlayer.swf}
    
  • 如果您完全按照此方式操作,则需要用鼠标单击动画区域,然后按空格键暂停/继续。还有其他选项。请参阅软件包文档。这里sykloidi是转换器的输出。我将其保存在与源代码相同的文件夹中,因此无需输入完整路径。

我对此进行了测试,现在当我缩放所生成的幻灯片集的 Adob​​e Reader 视图时,动画区域将根据需要调整大小。

相关内容