Hallo liebes Forum, ich komme leider bei folgendem Problem nicht weiter:
Ich habe ein ID-Dokument mit 20 Ebenen und es sollen per script nur die Ebenen sichtbar geschaltet werden die in einem Array hinterlegt sind. Ich habe leider keine Idee wie ich das umsetzen könnte.
Habt ihr eine Idee?
Mein Code bis jetzt:
So funktioniert es leider nicht
Habt ihr eine Idee?
Danke LG faxinger
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
in Deinem Code sind ein paar Dinge durcheinander geraten.
_cur_layer wird außerhalb der Schleife deklariert. In der Schleife verwechselst Du die Namen der Ebene mit der Ebene selbst. Und die Syntax Deiner GREP-Prüfung (match) des Namens passt auch noch nicht so richtig.
Ich spare mir eine lange Ausführung. Vergleiche mal damit:
Wenn noch Fragen bleiben, her damit. ;-)
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 19. Mär 2019, 18:42 geändert)
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Man könnte noch einige andere Dinge (RegExp) straffen.
Aber ich wollte nur das Allernötigste ändern, damit Faxinger seine eigene Struktur darin möglichst wiedererkennt und die Unterschiede leichter nachvollziehen kann.
Viele Grüße Martin
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Hallo Martin, ja klar. Doch ich dachte, na, wenn faxinger bereits mit layers.everyItem() gearbeitet hat, dann kann er das gleich nochmal anwenden. :-) ***** Mit herzlichem Gruß, Uwe Laubender
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Ja ich könnte zuerst die Sichtbarkeit aller Ebenen auf aus stellen, aber ich frage davor noch den Status einer bestimmten Ebene zu Anfang ab und der Sichtbarkeitsstatus soll erhalten bleiben.
Schönen Abend.
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Wie kann ich bei der Schleife berücksichtigen dass eine Ebene namens "Fond_Kamp" nur eingeblendet wird, wenn sie zu Beginn eingeblendet war und sonst ausgeblendet wird?
Oder etwas detailierter: Blende mir alle Ebenen aus bis auf "RW_BG" und "Artikel" und eventuell (= Ebene "Fond_Kamp" war zum Zeitpunkt des Öffnen des Dokuments sichtbar) die Ebene "Fond_Kamp"
Geht das überhaupt? Ich habs bei der if Abfrage mit einer und Verknüpfung versucht, aber das war falsch.
Danke für jeden Hinweis.
LG faxinger
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Hallo faxinger, ich glaube, dann ist's am Besten aus der bisherigen Struktur des Skripts auszubrechen und das Ganze neu zu betrachten.
Beispielsweise wie im Code unten, in dem ich zwei Fälle unterscheide und die zugehörigen Namen in zwei verschiedenen Arrays ablege. Der Clou dabei ist, dass man den Visible-Status zusammen mit dem Namen der Ebene in einem Objekt bequem speichern und auch auswerten kann. Als Key/Value-Paar. Key ist der Name der Ebene, Value ist true oder false, je nachdem ob die Ebene sichtbar ist oder nicht.
***** Mit herzlichem Gruß, Uwe Laubender
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Und die lässt sich, wie Du wahrscheinlich bemerkt hast, ausbauen:
Die beiden Arrays lassen sich leicht mit Namen erweitern.
Wir könnten auch noch eine log-Funktion einbauen, die auswertet, ob die Namen auch gefunden wurden. Und falls nicht, eine log-Datei mit den nicht gefundenen Namen schreiben oder einen Alert zum Abschluß ausgeben. ***** Mit herzlichem Gruß, Uwe Laubender
Ebenensichtbarkeit nur für Ebenen mit Namen aus Array
Natürlich lässt sich mein Code auch noch auf Geschwindigkeit optimieren, sprich, die Anzahl der DOM-Objekt-Zugriffe vermindern, aber ich lass das mal so stehen…
Man könnte noch ein Array erzeugen:
und mit diesem dann das allLayersObject füttern, anstatt einen Zugriff direkt auf die Layer-Objekte zu machen. ***** Mit herzlichem Gruß, Uwe Laubender