Javascript: Массив undefined не является объектом
Извините, если этот вопрос уже задавался. Я нашел неопределенные ошибки, но не для массива, поэтому мой вопрос:
Я получаю ошибку "undefined is not a object", когда я пытаюсь объявить selRef41 с данным массивом. (Кстати, я использую ESTK, и я пишу этот скрипт для Photoshop)
var docRef = app.activeDocument;
var layRef = docRef.activeLayer;
function createSelection(layRef) {
// Declare function variables
const oneT = 1/3;
const twoT = (1/3)*2;
docRef = app.activeDocument;
layRef = app.activeLayer;
if (detailFactor == "2x2") {
var selRef41 = Array(Array(0, 0),
Array(layRef.width.value / 2, 0),
Array(layRef.width.value / 2, layRef.height.value / 2),
Array(0, layRef.height.value / 2));
}
Соответствующий main является однострочным для вызова функции:
function main() {
createSelection(layRef);
}
1 ответ
Где ты нашел это layRef.width.value
? Слои не имеют width
или же height
свойство (только документы), это то, что вызывает ошибку в вашем коде. Вы можете рассчитать ширину и высоту, используя их bounds
:
var layRef = docRef.activeLayer;
refWidth = layRef.bounds[2] - layRef.bounds[0];
refheight = layRef.bounds[3] - layRef.bounds[1];
alert([refWidth,refheight]);
Вы можете проверить PDF справочник по сценариям Photoshop, чтобы проверить свойства и методы объектов DOM.
Также, как заметил cybernetic.nomad, это не сработает: layRef = app.activeLayer;
и плюс у вас есть if (detailFactor == "2x2")
но detailFactor
не назначен