【发布时间】:2012-08-15 22:51:10
【问题描述】:
只有我认为 CS5 脚本运行缓慢吗? 这几行代码的执行时间超过 1 分钟。
for (n=0; n<app.activeDocument.layerSets.length; n++) {
app.activeDocument.layerSets[n].visible = false;
}
layerSet 的数量为 20。 我在 Vista Home Premium 系统上运行 CS5.1 64 位版本,AMD Athlon 64 X2 Dual Core 5200+ 和 8GB RAM。
我尝试将脚本导出为 .JSXBIN,但仍需要 1 分钟多的时间。当 CS5.1 运行 .JSXBIN 脚本时,CS5.1 的 CPU 使用率从 3% 变为 57%。
这里肯定有问题,如何加快脚本速度?
// 谢谢
* 编辑 * 似乎 CS5 自己的 DOM 实现是这里的问题。通过将 DOM 相关值读取到局部变量中,该脚本加速了两倍以上。
var LayerCount = app.activeDocument.layerSets.length;
var LayerRoot = app.activeDocument.layerSets;
for (n=0; n<LayerCount; n++) {
LayerRoot[n].visible = false;
}
...但是,仅更改 20 个对象中的属性仍然需要很多时间。任何有关优化的帮助将不胜感激:)
【问题讨论】:
-
您是否考虑过将每一层的 innerHTML 保存到一个数组中,然后将其设置为“”?然后要恢复一个层,只需从数组中复制它的 innerHTML 即可。隐藏=>
temp[i]=layerSets[i].innerHTML;layerSets[i].innerHTML="";... 显示=>layerSets[i].innerHTML=temp[i]; -
您是否正在运行 Vista?
-
在 Vista 和 Windows 7 上的结果相同。
标签: javascript optimization photoshop flash-cs5 photoshop-script