ich habe folgende Idee/Anforderung und so richtig klappt es noch nicht: ich möchte eine Ebene einblenden, wenn ein Textfeld mit Inhalt gefüllt wird. Wird der Textfeldinhalt wieder gelöscht, soll die Ebene wieder ausgeblendet werden. Das Script liegt auf dem Textfeld als Aktion und wird ausgeführt bei "Feld deaktivieren".
Teilweise klappt das auch. Anfangszustand ist ein leeres Textfeld. Klicke ich das TF an und schreibe etwas rein, wird die Ebene eingeblendet -> so soll es sein. Schreibe ich aber nichts rein und deaktiviere das TF, wird die Ebene trotzdem eingeblendet.
Was ich mich in dem Zusammenhang schon länger frage: wie bekomme ich eigentlich den OCG (also die Nummer) einer Ebene heraus? Kann ich den irgendwo ablesen?
Ich mach es bisher immer per Try&Error, dass ich über eine Schaltfläche einfach nacheinander alle Ebenen ausblende, aber irgendwie ist das auch nervig.
Oder kann man Ebenen auch per Ebenennamen ansprechen?
Das OCG Object hat die name property. Das heisst, es ist möglich, den Namen der OCG auszulesen. Das Code-Beispiel in der Acrobat JavaScript-Dokumentation (Bestandteil des Acrobat SDKs, herunterladbar von der Adobe Website) zeigt es gut auf.
Es gibt allerdings keinen direkten Zugriff auf eine OCG (eine getOCG() Methode ist eben nicht implementiert).
Eine gewisse Vereinfachung ist möglich, wenn sicher gestellt ist, dass das Dokument immer in Acrobat 8 oder neuer benutzt wird, und die OCG-Namen eindeutig und einmalig sind. In diesem Fall kann die indexOf() Methode des Array-Objects genutzt werden: