[英]toggle visibility of a layer (the state property) in Acrobat not working
我试图通过将state
属性设置为true
或false
来切换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.