作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Photoshop 中创建一个图案脚本,在整个 Canvas 上水平和垂直复制图像。但问题是,在 x 轴上,每次循环它的值都会加倍。如果我删除“j”循环,它就可以正常工作。
这张图片将向您展示我提到的问题/image/ZkPrX.jpg
var offset = parseInt(prompt("Type in the offset (spacing between pics) value here.\nDefault is 0px.", "0"));
for (var i = 0; i < width / (layerWidth + offset); i++) {
for (var j = 0; j < 3; j++) {
app.activeDocument.layers[i, j].duplicate()
app.activeDocument.layers[i, j].translate(i * (layerWidth + offset), j * (layerHeight + offset));
}
}
最佳答案
正如火山提到的,layers[i, j]
不是访问图层的有效方法。我什至不知道为什么这有效。您应该选择原始图层,制作副本并翻译它。像这样的事情:
var width = activeDocument.width.as("px");
var height = activeDocument.height.as("px");
var layer = app.activeDocument.activeLayer;
var layerWidth = layer.bounds[2] - layer.bounds[0];
var layerHeight = layer.bounds[3] - layer.bounds[1];
var copy, i, j;
var offset = parseInt(prompt("Type in the offset (spacing between pics) value here.\nDefault is 0px.", "0"));
for (i = 0; i < width / (layerWidth + offset); i++)
{
for (j = 0; j < height / (layerHeight + offset); j++)
{
// in the each loop we select the original layer, make a copy and offset it to calculated values
app.activeDocument.activeLayer = layer;
copy = layer.duplicate();
copy.translate(i * (layerWidth + offset), j * (layerHeight + offset));
}
}
layer.remove(); // remove the original layer
结果:
关于javascript - For 循环代码将每个循环的 x 轴间距加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57755199/
我是一名优秀的程序员,十分优秀!