在 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
填充它,但事实并非如此。解决方案是只推匹配值而不是拼接。
我试图通过将 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
填充它,但事实并非如此。解决方案是只推匹配值而不是拼接。