захватить количество выбранных текстовых фреймов - PullRequest
0 голосов
/ 21 января 2020

У меня есть текстовый фрейм, на котором я хочу запустить некоторый код. Этот код удалит двойные пробелы ... как дизайнер, мне нужен чистый текст, а не то, как писатель будет иметь двойные пробелы после периода. У меня есть код, который проходит через каждый кадр в текущем документе. что мне нужно, это выбрать только определенные текстовые фреймы для запуска этого кода.

вот что у меня есть.

var myDoc = app.activeDocument;
var textFrame = myDoc.textFrames.selection[0];

 //make sure selected text frame
if(!(app.selection[0] instanceof TextFrame)) {
    alert("Please select a text frame");
    exit();
} else {
for(var i = 0; i < textFrame.length; i++) {
    var frameCount = textFrame[i];
}

alert("text frame amount:" + frameCount);

Я уверен, что это легко исправить. Я просто не могу понять, что я делаю здесь не так.

Есть идеи?

1 Ответ

2 голосов
/ 22 января 2020

Если вы хотите разрешить выделение нескольких текстовых фреймов, вам сначала нужно циклически пройти выбор, чтобы собрать все выбранные элементы, которые фактически являются текстовыми фреймами, а затем на втором шаге l oop по всем этим собранным текстовым фреймам.

Это должно делать то, что вам нужно:

var sel = app.selection;
var selectedTextFrames = [];

for (var i = 0; i < sel.length; i++) {
  if(sel[i] instanceof TextFrame) {
    selectedTextFrames.push(sel[i])
  }
}

if(!selectedTextFrames.length) {
  alert("Please select one or multiple text frames");
  exit();
}

for (var i = 0; i < selectedTextFrames.length; i++) {
  // do something with each selected text frame
}

alert(i + " text frame(s) have been processed.");
...