Перенесите элементы страницы вперед или назад, используя скрипт приложений в Google Slides. - PullRequest
0 голосов
/ 03 октября 2018

Порядок размещения определяется порядком их вставки в слайд.Однако некоторые элементы страницы на слайдах остаются скрытыми.

Можно ли изменить порядок объектов в слайдах Google с помощью скрипта apps?

1 Ответ

0 голосов
/ 04 октября 2018

Как насчет этого обходного пути?Я испытал ту же ситуацию с вами.В то время я переместил элемент, используя этот обходной путь.Я думаю, что есть несколько обходных путей для этой ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.Этот обходной путь выглядит следующим образом.

Принцип:

Например, в Google Slides при создании новой фигуры для слайда он добавляется к последнему элементу в pageElements,Это означает, что последний элемент pageElements является самым передним.Это используется для временного решения.

Поток:

  1. Выберите фигуры.
    • В этом случае, например, формы, которые выводятся на передний план, выбираются щелчком мыши.
  2. Добавьте выбранные фигуры на страницу, используя insertPageElement(),Они добавляются на страницу как новые элементы.
  3. Удалите выбранные фигуры из 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);
}

Результат:

enter image description here

Примечание:

  • При использовании этого сценария сначала выберите фигуры на слайде.Затем запустите front() или back().При запуске front() выбранная фигура перемещается в крайнее переднее положение.Когда запускается back(), он перемещается в крайнее заднее положение.
  • В этом примере сценария выбранные фигуры переносятся в крайнее переднее и заднее.Это простой пример сценария.
    • Если вы хотите переместить фигуры для каждого элемента, измените скрипт.
  • В этом случае перемещенные элементы добавляются как новые элементы.Таким образом, идентификаторы перемещенного объекта обновляются.

Ссылки:

Если этот ответ не соответствует вашим ожиданиям, извините.

Обновлено 20 ноября 2018 года:

СлайдыСлужба была обновлена ​​при обновлении Google 14 ноября 2018 года, и для решения этой проблемы было добавлено несколько методов.

В услугу «Слайды» добавлены следующие новые методы, позволяющие управлятьZ-позиционирование элементов страницы в слайдах.

  • takeForward ()
  • yieldToFront ()
  • sendBackward ()
  • sendToBack ()
...