试图弄清楚如何在Indesign CC中的页面上的所有选定项目中添加落下阴影。这是我所拥有的,但它说"不确定不是对象。"
myDS = app.select(SelectAll.ALL);
myDS.dropShadowSettings.mode = ShadowMode.drop;
myDS.dropShadowSettings.angle = .0083;
myDS.dropShadowSettings.xOffset = 0.08;
myDS.dropShadowSettings.yOffset = 0.08;
myDS.dropShadowSettings.size = 0.6;
,那就是这样(尽管我希望检查项目是否具有应用对象样式,如果是这样,请编辑对象样式本身。那么,我会查看项目是否已经处理到已经处理的样式获得性能。但要简短:
var allPageItems = doc.allPageItems;
var n = allPageItems.length;
while ( n-- ) process ( allPageItems[n] );
function process ( item) {
if ( !item.properties.transparencySettings ) return;
item.transparencySettings.dropShadowSettings.mode = ShadowMode.NONE;
}
通过使用"选择全",返回的对象是经典数组,其中dropshadowsettings不是有效的属性,因此错误。我建议使用对象样式,而不是直接设置道具。这样,您将能够手动编辑样式并查看以前的相关对象已更新。
var doc = app.activeDocument;
var os = doc.objectStyles.itemByName ( "myDropShadow" );
!os.isValid && os = doc.objectStyles.add ( {
name:"myDropShadow",
transparencySettings:{
dropShadowSettings:{
mode:ShadowMode.drop,
angle : .0083,
xOffset : 0.08,
yOffset : 0.08,
size : 0.6,
}
}
});
app.activeDocument.pageItems.everyItem().appliedObjectStyle = os;
顺便说一句,最好不要使用ui命令,例如复制/粘贴/选择,因为它们耗时,并且在DOM本身内总有替代方案。