LibreOffice Impress 宏读取幻灯片的动画事件持续时间和延迟时间

问题描述 投票:0回答:1

我正在 LibreOffice Impress 中编写一个基本宏,它构建一个将运行指定时间长度的自定义幻灯片。幻灯片放映由一组自动前进的幻灯片组成。我的问题是,如果幻灯片包含动画,例如形状淡入,我找不到它的持续时间和延迟时间。如果没有这些时间,我无法计算幻灯片将显示多长时间。

使用 PropertySetInfogetPropertyByName() 方法我找到了 Effect 属性,但没有 DurationDelay 属性的迹象。有人可以指出它们在模型中的存储位置吗?

libreoffice libreoffice-basic libreoffice-impress libreoffice-macros
1个回答
0
投票

这里这里提出了类似的问题,但没有解决方案。

MRI 工具显示形状的属性

TextAnimationDelay
,其记录为“这是每个动画步骤之间千分之一秒的延迟。”然而,该值是 0。我也尝试过这个,希望获得特定幻灯片上的动画列表,如侧面板顶部所示,但它没有预期的元素数量:

oAnimationsEnum = oSlide.getAnimationNode().createEnumeration()

您可以解压缩 .odp 文件并查找存储值的位置,而不是通过 API,类似于此处的建议:

找到相关的

anim:par
元素。 在相关元素上设置
smil:begin="1s"

一旦弄清楚如何手动执行此操作,请编写一个脚本来自动执行此操作 - 解压缩文件,然后进行解析。基本思想只需要几行 Python 代码,尽管由于相关值的存储方式,此特定任务可能需要更多代码。

由于最终您在 Basic 宏中需要此信息,因此您的脚本可以打印出值的 Basic 语言数组,您可以将其复制并粘贴到宏代码中。如果延迟发生变化,则需要重新生成这些值。

© www.soinside.com 2019 - 2024. All rights reserved.