堆叠顺序取决于将它们插入幻灯片的顺序。但是,幻灯片中的某些页面元素仍处于隐藏状态。
是否可以使用应用脚本更改Google幻灯片中对象的顺序?
答案 0 :(得分:1)
该解决方法如何?我和你也经历过同样的情况。当时,我已经使用此替代方法移动了该元素。我认为对于这种情况有几种解决方法。因此,请将此视为其中之一。此解决方法的流程如下。
例如,在Google幻灯片中,当为幻灯片创建新形状时,会将其添加到pageElements
的最后一个元素中。这意味着pageElements
的最后一个元素是最前面的。此方法用于解决方法。
insertPageElement()
将选定的形状添加到页面。这些作为新元素添加到页面中。pageElements
中删除选定的形状。通过这种方式,可以将所选形状带到最前面和后面。当该流程反映到脚本时,它如下所示。
function move(page, spe) {
var pe = page.getPageElements();
spe.forEach(function(e) {
page.insertPageElement(e);
});
pe.forEach(function(f, i) {
if (spe.some(function(g) {return f.getObjectId() == g.getObjectId()})) {
pe[i].remove();
}
});
}
// Bring to back
function back() {
var slide = SlidesApp.getActivePresentation();
var selected = slide.getSelection();
var page = selected.getCurrentPage();
var pageElements = page.getPageElements();
var selectedPageElements = selected.getPageElementRange().getPageElements();
var noSelectedPageElements = pageElements.filter(function(e) {return !selectedPageElements.some(function(f) {return e.getObjectId() == f.getObjectId()})});
move(page, noSelectedPageElements);
}
// Bring to front
function front() {
var slide = SlidesApp.getActivePresentation();
var selected = slide.getSelection();
var page = selected.getCurrentPage();
var pageElements = page.getPageElements();
var selectedPageElements = selected.getPageElementRange().getPageElements();
move(page, selectedPageElements);
}
front()
或back()
。运行front()
时,所选形状将移到最前面。运行back()
时,它会移到最靠后的位置。如果这个答案不是您想要的,对不起。
通过以下新方法扩展了幻灯片服务,该方法使您可以控制幻灯片中页面元素的Z位置。
- bringForward()
- bringToFront()
- sendBackward()
- sendToBack()