在 Acrobat 中切换图层的可见性(状态 属性)不起作用

toggle visibility of a layer (the state property) in Acrobat not working

我试图通过将 state 属性 设置为 true 或 [=] 来切换 Acrobat pdf 中的图层可见性14=]。它在概念证明 pdf 中运行良好,但在这里不起作用。我觉得这是一个范围问题,因为我正在进入 switch 语句,但状态没有切换。我觉得我没有在 displayRating 中正确引用文档中的 STARS。有任何想法吗?似乎拼接的结果突然与 LAYERS 数组中的项目在被推入 STARS 时不同。谢谢!

// document javascript    
var STARS = [];
function init(){
    var LAYERS = this.getOCGs();
    var l = LAYERS.length;   
    for(var i = 0;i<l;i++){
        if(/^(STAR_)/i.test(LAYERS[i].name)==true){
            STARS.push(LAYERS.splice(i,1,null));
        };
    }
}
function displayRating(r){
    // called from a button in the pdf
    switch(parseInt(r)){
        case 3:
            STARS[0].state = STARS[1].state = STARS[2].state = true;
            break;
        case 2:
            STARS[0].state = STARS[1].state = true;
            STARS[2].state = false;
            break;
        case 1:
            STARS[0].state = true;
            STARS[1].state = STARS[2].state = false;
            break;
        default:
            STARS[0].state = STARS[1].state = STARS[2].state = false;
    }
}
init();

注意: 在 Acrobat SDK pdf 中,state 属性 在第 520 页有描述。

已解决:原来是 splice 语句导致了问题。它将空值记录到 LAYERS 数组中,然后将 null 推入 STARS 数组。我以为它会先 return 来自 splice 的值,然后用 null 填充它,但事实并非如此。解决方案是只推匹配值而不是拼接。