繁体   English   中英

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

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

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

// 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语句导致了问题。 它正在将 null 值记录到 LAYERS 数组中,然后将null推入 STARS 数组中。 我以为它会先从splice处返回值,然后用null填充它,但事实并非如此。 解决方案是在没有拼接的情况下只推送匹配的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM