странное поведение place.Asset

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

bossrus

шибка умный, аднака
Топикстартер
12 лет на форуме
Сообщения
447
Реакции
74
в скрипте есть строчка вставки некоего объекта в текстовый бокс
Код:
myObj.placeAsset(myTF.texts[0]);
на всех машинах в фирме установлен вроде бы одинаковый InDesign CS 5.5
на пяти машинах скрипт прекрасно работает. но на шестой машине скрипт выдает симпатичную ошибку
Screen shot 2012-12-07 at 3.42.13 PM.png

чому, и чо делать? :)
 
Ответ: странное поведение place.Asset

texts[0] это не текстовый фрейм, это сам текст.
разбираться надо в контексте. скрипт сами писали?
 
Ответ: странное поведение place.Asset

Пути адобовского скриптинга неисповедимы. Тут может быть все что угодно - от операционной системы, версии, локализации, памяти и т.д. На форуме приведено миллион примеров, когда, вроде бы, корректное действие вызывает ошибку на ровном месте, которую повторить на других компьютерах невозможно. Видимо, зная это и подстраховываясь от резонных вопросов, адоба так туманно составила свою документацию по скриптингу, что она сродни библии - трактовать ее можно с точностью до наоборот.
Что можно сделать?- залезть в отладчик и, для начала посмотреть, что сидит в myObj и myTF и на каком этапе там появляется лажа.
 
Ответ: странное поведение place.Asset

texts[0] это не текстовый фрейм, это сам текст.
разбираться надо в контексте. скрипт сами писали?

что-то сам, что-то туташние мастера подсказали.

вообще эта строчка вставляет объект myObj в текстовый фрейм myTF

сидит в myObj и myTF и на каком этапе там появляется лажа.

вот текст этого участка:

Код:
var myLib = app.libraries.item("LibraryCS5.indl");
myObj = myLib.assets.itemByName("newComment");
var myTF = app.activeDocument.textFrames.add({geometricBounds: app.activeDocument.pages[0].bounds});
myObj.placeAsset(myTF.texts[0]);
и он таки вставляет. вопрос-то не в том, "почему оно не работает" — оно таки работает. а в том, "почему не работает на одной машине, когда на всех остальных все нормально"

Тут может быть все что угодно - от операционной системы, версии, локализации, памяти
*[[
 
Ответ: странное поведение place.Asset

А на этой машине LibraryCS5.indl существует?
 
Ответ: странное поведение place.Asset

var myLib = app.libraries.item("LibraryCS5.indl");
Подозреваю, что на той машине, где не работает, какая-то засада с библиотеками (пути, версии и т.д.)
 
Ответ: странное поведение place.Asset

Подозреваю, что на той машине, где не работает, какая-то засада с библиотеками (пути, версии и т.д.)
три раза проверил — в этом самом индизайне открыта та же самая библиотека, что и на остальных машинах (я ее просто раскопировал с сервака на локальные машины)
 
Ответ: странное поведение place.Asset

а что скажет alert(myTF.texts[0]); ?

что из себя представляет данный Asset? может, его поместить в документ и потом поставить на нужную страницу, а не создавать фрейм и помещать в него?

myObj.placeAsset(app.activeDocument);
 
Ответ: странное поведение place.Asset

а что скажет alert(myTF.texts[0]); ?

говорит
Screen shot 2012-12-07 at 4.39.59 PM.png

что из себя представляет данный Asset? может, его поместить в документ и потом поставить на нужную страницу, а не создавать фрейм и помещать в него?

myObj.placeAsset(app.activeDocument);
тоже не хочет.
Screen shot 2012-12-07 at 4.41.25 PM.png
и даже если я ему уточняю, что "не куда-нить на документ, а прямо на первую страницу"...
все равно
Screen shot 2012-12-07 at 4.42.13 PM.png
 
Ответ: странное поведение place.Asset

сейчас поймал одмина — он клянется, что все индизы ставились с одного дистрибутива.
ситуация запутывается :-(
 
Ответ: странное поведение place.Asset

ok, что скажет alert(myObj); ?

наиболее вероятно что на этой машине в библиотеке asset с именем newComment отсутствует.
 
Ответ: странное поведение place.Asset

Скорее всего. Тогда уж, до кучи и allert(myLib) - возможно и тут проблема будет ;)
 
Ответ: странное поведение place.Asset

Код:
наиболее вероятно что на этой машине в библиотеке asset с именем newComment отсутствует.

напомню:
три раза проверил — в этом самом индизайне открыта та же самая библиотека, что и на остальных машинах (я ее просто раскопировал с сервака на локальные машины)

если неубедительно — то при отсутствии библиотеки ошибка будет в строке
var myLib = app.libraries.item("LibraryCS5.indl");

а при отсутствии объекта в библиотеке ошибка будет тут:
Код:
myObj = myLib.assets.itemByName("newComment");

а еще лучше — вместо того, чтобы гадать — скопируйте этот кусок скрипта себе в редактор, запустите из индизайна и посмотрите где и какие будут ошибки :)

ok, что скажет alert(myObj); ?
в понедельник скажу :)

Тогда уж, до кучи и allert(myLib) - возможно и тут проблема будет
и это тоже в понедельник.


но дело, имхо, именно в самом операторе asset. может при каких-то условиях он пишется по-другому? :))
 
Ответ: странное поведение place.Asset

myObj = myLib.assets.itemByName("newComment");

да не будет никакой ошибки. просто в myObj будет undefined

три раза проверил — в этом самом индизайне открыта та же самая библиотека, что и на остальных машинах (я ее просто раскопировал с сервака на локальные машины)

а наличие элемента проверили? об этом ни слова. может его стер кто или переименовал давно.
 
Ответ: странное поведение place.Asset

а наличие элемента проверили? об этом ни слова. может его стер кто или переименовал давно.

брррр... еще раз.

Не по теме:
я создал на своей машине библиотеку и скрипт. сохранил на сервак. пошел на первую машину, скопировал с сервака скрипт и библиотеку. открыл библиотеку в индизе. создал новый документ, запустил скрипт, полюбовался на появившийся объект, закрыл документ. пошел к машине номер 2. скопировал с сервака скрипт и библиотеку. открыл библиотеку в индизе. создал новый документ, запустил скрипт, полюбовался на появившийся объект, закрыл документ. пошел к машине номер 3.скопировал с сервака скрипт и библиотеку. открыл библиотеку в индизе. создал новый документ, запустил скрипт... упс! ошибка. пошел к машине номер 4. скопировал с сервака скрипт и библиотеку. открыл библиотеку в индизе. создал новый документ, запустил скрипт, полюбовался на появившийся объект, закрыл документ. пошел к машине номер 5.скопировал с сервака скрипт и библиотеку. открыл библиотеку в индизе. создал новый документ, запустил скрипт, полюбовался на появившийся объект, закрыл документ. пошел к машине номер 6.скопировал с сервака скрипт и библиотеку. открыл библиотеку в индизе. создал новый документ, запустил скрипт, полюбовался на появившийся объект, закрыл документ.

вот где-то так.
 
Ответ: странное поведение place.Asset


Не по теме:
кхм. как-то странно ведет себя форум из моей оперы. часть тегов игнорирует :)
 
Ответ: странное поведение place.Asset

забавно ) в общем, надо посмотреть что в myObj.
могу также взглянуть на библиотеку, если выложите куда-нибудь
 
Ответ: странное поведение place.Asset

давайте теперь alert(myObj.name);

попробуйте еще asset пересоздать. а что в нем, кстати - переменная?
 
Статус
Закрыто для дальнейших ответов.