Copy link to clipboard
Copied
Hello,
I wrote the photoshop scripting code that move specific layerset like below.
Copy link to clipboard
Copied
moveLayerSetWithMask(app.activeDocument.layerSets[0], 0, new UnitValue(20, 'px'))
function moveLayerSetWithMask(lrSet, dH, dV) {
var id = lrSet.id
if (hasLayerUserMask(id)) {
var linked = getUserMaskLinkedState(id)
setUserMaskLinkedState(id, true)
lrSet.translate(dH, dV)
setUserMaskLinkedState(id, linked)
} else {
lrSet.translate(dH, dV)
}
function setUserMaskLinkedState(id, linked) {
desc = new ActionDescriptor(),
desc2 = new ActionDescriptor(),
ref = new ActionReference()
ref.putIdentifier(s2t("layer"), id)
desc.putReference(s2t("null"), ref)
desc2.putBoolean(s2t("userMaskLinked"), linked)
desc.putObject(s2t("to"), s2t("layer"), desc2)
executeAction(s2t("set"), desc, DialogModes.NO)
}
function getUserMaskLinkedState(id) {
ref = new ActionReference()
ref.putProperty(s2t("property"), s2t("userMaskLinked"))
ref.putIdentifier(s2t("layer"), id)
return executeActionGet(ref).getBoolean(s2t("userMaskLinked"))
}
function hasLayerUserMask(id) {
ref = new ActionReference()
ref.putProperty(s2t("property"), s2t("hasUserMask"))
ref.putIdentifier(s2t("layer"), id)
return executeActionGet(ref).getBoolean(s2t("hasUserMask"))
}
function s2t (s) { return app.stringIDToTypeID(s) }
}
Find more inspiration, events, and resources on the new Adobe Community
Explore Now