Hallo fprince,
zum Schluss noch zwei Erklärungen.
1. Im AppleScript-Code werden alle "Kandidaten" der Variablen 'unpainted' zugewiesen. Dank 'whose' in einer
einzigen Aktion. Und anschliessend werden alle mit
einem Befehl gelöscht.
Das ist mit JavaScript nicht so einfach möglich. Nur mit einer sehr komplizierten Funktion (siehe:
http://forums.adobe.com/message/5109826#5109826).
Deshalb ziehe ich die Schleife vor, mit welcher die Objekte einzeln besucht werden.
2. Die Schleife muss rückwärts laufen. Sonst: Nachdem das erste Objekt gelöscht wurde, wäre die Anzahl der verbliebenen Objekte kleiner, als der Endwert der Schleife. Beim Versuch, das letzte Objekt zu prüfen, ist dieses nicht mehr da und die Fehlermeldung "No such object" wird gezeigt.
Nochmals die Definition der Schleife:
Die Variable 'n' wird als erstes initialisiert. Als Startwert wird ihr die Anzahl der Objekte zugewiesen. Minus 1, weil JavaScript bei Null zu zählen beginnt. Das letzte Element hat demnach den Index 'Anzahl aller Elemente minus 1'.
Als nächstes wird der Ausstiegswert definiert: 'n>-1;' Die Schleife dreht so lange als der Wert von 'n' grösser ist als minus eins. Somit wird das Element 0 (= das erste) zuletzt geprüft.
Die dritte Definition ist der Schrittwert, um welchen sich der Zähler ändern soll. Für einen Rückwärtslauf ist das logischerweise 'n--', das heisst, bei jedem Umgang wird der Wert um 1 verringert.
Die vorwärtslaufende Schleife würde so aussehen:
Und weil wir hier im AppleScript-Forum sind, die beiden Definitionen in AppleScript-Speak. Vorwärts:
Und rückwärts:
Gruss, Hans