Как насчет этого обходного пути?Я испытал ту же ситуацию с вами.В то время я переместил элемент, используя этот обходной путь.Я думаю, что есть несколько обходных путей для этой ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.Этот обходной путь выглядит следующим образом.
Принцип:
Например, в Google Slides при создании новой фигуры для слайда он добавляется к последнему элементу в 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()
, он перемещается в крайнее заднее положение. - В этом примере сценария выбранные фигуры переносятся в крайнее переднее и заднее.Это простой пример сценария.
- Если вы хотите переместить фигуры для каждого элемента, измените скрипт.
- В этом случае перемещенные элементы добавляются как новые элементы.Таким образом, идентификаторы перемещенного объекта обновляются.
Ссылки:
Если этот ответ не соответствует вашим ожиданиям, извините.
Обновлено 20 ноября 2018 года:
СлайдыСлужба была обновлена при обновлении Google 14 ноября 2018 года, и для решения этой проблемы было добавлено несколько методов.
В услугу «Слайды» добавлены следующие новые методы, позволяющие управлятьZ-позиционирование элементов страницы в слайдах.
- takeForward ()
- yieldToFront ()
- sendBackward ()
- sendToBack ()