[ID CS4-CS6] На какой странице объект?

  • Автор темы Автор темы bossrus
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

bossrus

шибка умный, аднака
Топикстартер
12 лет на форуме
Сообщения
447
Реакции
74
берём простенький скрипт
Код:
while (obj.constructor.name!="Application")
{
obj=obj.parent;
alert(obj.constructor.name);
}

рисуем красивый боксик, и помещаем внутрь картинку. получается вполне себе понятная цепочка:
Image —> Rectangle —> Page —> Spread —> Document —> Application

всё правильно и логично.
но всё меняется, если этот боксик запихнуть в текстовый бокс.
Image —> Rectangle —> Character —> Story —> Document —> Application

и вот тут-то и возникает вопрос — а как узнать на какой такой странице расположена эта картинка?
 
Image —> Rectangle —> Character —> Story —> Document —> Application
Ну, по идее, Story может располагаться в нескольких TextFrames на разных страницах, поэтому стрелка от Storу уже теряет смысл
У Character есть свойство parentTextFrames
А у каждого TextFrame есть свойство parentPage
 
  • Спасибо
Реакции: bossrus
Код:
obj.parent.parentTextFrames[0].parent.name
прокатит?
 
  • Спасибо
Реакции: bossrus и _MBK_
PHP:
// Функция для получения родительской страницы объекта
function getParentPage (myObject) {
// Пока объект имеет тип, отличный от Application (самый верхний уровень)
  while (myObject.constructor.name != "Application") {
// Если объект имеет требуемый тип, возвращаем его
    if (myObject.constructor.name == "Page") {
      return myObject;
// Иначе помещаем в переменную родительский объект, сначала попробовав получить родительский текстовый фрейм
    } else {
      try {
        myObject = myObject.parentTextFrames[0];
      } catch (error) {
        myObject = myObject.parent;
      }
    }
  }
// Если объект нужного типа не был найден, то возвращаем null
  return null;
}
Think.JS №20
 
  • Спасибо
Реакции: bossrus
  • Спасибо
Реакции: bossrus и Flame
Статус
Закрыто для дальнейших ответов.