很抱歉,是否已经有人问过这个问题。我发现了未定义的错误,但没有找到数组,所以这是我的问题:
当我尝试用给定的数组声明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));
}
对应的主线只是调用该函数的单行代码:
function main() {
createSelection(layRef);
}
答案 0 :(得分:0)
您在哪里找到这个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]);
您可以选中Photoshop Scripting Reference pdf来检查DOM对象的属性和方法。
此外,正如cybernetic.nomad指出的那样,这将行不通:layRef = app.activeLayer;
,而且您拥有if (detailFactor == "2x2")
但没有分配detailFactor
。