[GastForen Programmierung/Entwicklung AppleScript QXP: Warum ist 'do script' so wichtig?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

QXP: Warum ist 'do script' so wichtig?

Hans Haesler
  
Beiträge gesamt: 5826

2. Dez 2007, 22:01
Beitrag # 1 von 1
Bewertung:
(718 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

Die do script-Methode (welche unter Leopard Probleme macht: http://www.page-online.de/forum/viewthread/3452/) gibt es mindestens seit QuarkXPress 3.32. Wichtig wurde sie aber erst ab QXP 4.x, weil in gewissen Fällen nur so die Dauer der Ausführung eines Scripts erträglich gehalten werden kann.

Ein praktisches Beispiel. Eine neues Dokument, eine kleine Bildbox erzeugen und deren Grösse auf 10 mal 10 mm ändern. Den Dialog "Mehrfach duplizieren" aufrufen (Befehl+Option+D) und folgende Werte eintippen: Anzahl Kopien: 9 / Horiz. Versatz: 11 mm / Vertik. Versatz: 0 mm. Mit "OK" bestätigen. Alles auswählen. Nochmals den Dialog aufrufen: Anzahl Kopien: 9 / Horiz. Versatz: 0 mm / Vertik. Versatz: 11 mm. Und "OK" klicken.

Das Ergebnis: Ein Quadrat aus 100 Quadraten. Sicherstellen, dass nichts mehr ausgewählt ist (sonst kann es bis dreimal länger dauern). Dann dieses Script starten (das a reference to ist eine Konzession an den Leoparden).
---
tell document 1 of application "QuarkXPress 7.31"
   activate
   set curColor to a reference to color spec "Magenta"
   repeat with i from 1 to 100
      tell picture box i
         set properties to {color:curColor, shade:101 - i}
      [color=#2900FF]end tell
   end repeat

   display dialog[/color] "Fertig." buttons "OK" default button 1
end tell
---
Die Ausführung dauert auf einem G4/800 mit QuarkXPress 3.32 (Mac OS 9.22) nur 53 Ticks. Also eine knappe Sekunde. Mit QuarkXPress 4.11 benötigt das Script 252 Ticks (= gut vier Sekunden). Mit QuarkXPress 7.31 sind es auf derselben Maschine (aber Mac OS X 10.4.10) quälende 30 Sekunden. Mit dem Mac Pro/2x 2.66 und Mac OS X 10.5.1 und QXP 7.31 "nur" noch 5 Sekunden.

Um die Performance der Uralt-Version zu erreichen, dient das Ausführen mit do script, wobei die Aktion im Hintergrund geschieht.
---
tell application "QuarkXPress 7.31"
   activate
   do script {colorBoxes}
   display dialog "Fertig." buttons "OK" default button 1
[color=#2900FF]end tell

script
[/color] colorBoxes
   tell document 1 of application "QuarkXPress 7.31"
      set curColor to a reference to color spec "Magenta"
      repeat with i from 1 to 100
         tell picture box i
            set properties to {color:curColor, shade:101 - i}
         [color=#2900FF]end tell
      end repeat
   end tell
end script
[/color]
---
Und? Ist ein Unterschied fühlbar? ;-)

Gruss, Hans
X