#javascript #adobe-illustrator
#javascript #adobe-illustrator
Вопрос:
Я пытаюсь использовать скрипты в illustrator. Некоторые из них требуют возможности импортировать другие скрипты, поэтому я нашел приведенный ниже код. Когда я пытаюсь запустить его, я получаю
Ошибка 21: неопределенный не является объектом.
Строка 6 -> var Libraries = (function(libpath){«
Я просмотрел другие ответы, и, похоже, проблема в том, что «Библиотеки» (?) не определено, и я должен сначала определить его. К сожалению, я не знаю, как это должно быть определено. Или я не понимаю проблему в целом.
Я ожидал, что он импортирует helloworld.jsx и, следовательно, сможет запускать функцию HelloWorld. Он вызвал ошибку, описанную выше.
//Library importing function from https://gist.github.com/jasonrhodes/5286526
// indexOf polyfill from https://gist.github.com/atk/1034425
[].indexOf||(Array.prototype.indexOf=function(a,b,c){for(c=this.length,b=(c ~~b)%c;b<camp;amp;(!(b in this)||this[b]!==a);b );return b^c?b:-1;});
var Libraries = (function(libPath) {
return {
include: function(path) {
if (!path.match(/.jsx$/i)) {
path = path ".jsx";
}
return $.evalFile(libPath path);
}
};
})($.fileName.split("/").splice(0,$.fileName.split("/").indexOf("adobe_scripts") 1).join("/") "/lib/");
Libraries.include("HelloWorld.jsx");
helloWorld();
Комментарии:
1. Я подозреваю, что
$.evalFile()
это асинхронно? Это Adobes ExtendScript вместо javascript?
Ответ №1:
Прошло много лун с тех пор, как я это сделал… Разве библиотеки не являются функцией, которая принимает libPath, поэтому вам нужно будет вызвать
Libraries('c:whereever').include('HellowWorld.jsx');