如何使用extendscript检查属性值是否只读?

Mig*_*uel 6 javascript after-effects extendscript

我正在为After Effects编写一个脚本,它从图层收集所有属性并将它们写入XML文件.当我从XML中检索值时,某些值是readOnly,并且工具包会引发错误.

有没有办法检查它,像File对象的readonly属性?即:layer.property().(readonly || readOnly)

如果没有,有人可以告诉我,我可以采取哪些方法朝着正确的方向前进?

CRG*_*een 4

考虑到项目中的第一个项目是一个带有实体的组合,这可以工作,但可以说是很混乱,并且您需要能够构建(每个)字符串才能做到这一点 - 但也许您已经为此做好了准备:

var r;
r = testForReadability("app.project.items[1].layers[1].enabled");
alert(r);
r = testForReadability("app.project.items[1].layers[1].width");//a solid's width is NOT writable
alert(r);

function testForReadability(thisProperty) {
    var x;
    try {
        x = eval(thisProperty);
        eval(thisProperty + " = x;");
        return true;
    } catch(e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这里出现了一个小问题,如果设置了“启用脚本调试器”选项,“false”将不起作用。因此,您需要采取解决方法来检查此设置并暂时重置它(请参阅http://aenhancers.com/viewtopic.php?f=8&t=189&p=554&hilit=debugger#p554