1. Einführung und Möglichkeiten
Scriptlets sind kleine Erweiterungen des Vision/Stages-Programms. Sie können selbst Erweiterungen schreiben, die dann im Programm als Menüpunkt sichtbar werden.
Scriptlets bieten Ihnen diese Möglichkeiten:
- EXIF-Daten auslesen
- Dauer und Position eines Objektes verändern
- Bewegungspfad und Kameraschwenk modifizieren
- Gestaltungsvorlagen laden und anwenden
- Fehlt Ihnen etwas? Fragen Sie uns!
2. Wie bindet man Scriptlets ein?
Damit Scriptlets als Menüeintrag sichtbar werden, können Sie in einem der folgenden Ordner liegen:
%appdata%\AquaSoft\Vision14\presets\scriptlets\
- Scriptlets nur für den aktuellen Nutzerc:\ProgramData\AquaSoft\Vision14\Scriptlets\
- Scriptlets die hier liegen, sind für alle Nutzer des gleichen Computers sichtbar
Legen Sie eine Datei mit der Endung .sss (also z.B. "MeinScript.sss") in einem der o.g. Ordner an und starten Sie das Programm neu. Nur dann erscheint der Menüeintrag. Falls der Ordner nicht vorhanden ist, legen Sie ihn selbst an.
3. Wie bearbeitet man Scriptlets?
Zum Bearbeiten nutzen Sie die integrierte Entwicklungsumgebung, die Sie über Ansicht / Steuerelemente / Scripting-Entwicklungsumgebung öffnen können, sofern der Entwicklermodus aktiviert ist. Hier können Sie Scripts schreiben, Syntaxfehler ansehen, aber auch die Ausführung debuggen, mit Haltepunkten, schrittweiser Ausführung und Werteüberwachung.
4. Beispiel: Spuren untereinander anordnen
Dieses Scriptlet ordnet alle Objekte innerhalb des markierten Kapitels untereinander an. Speichern Sie diesen Quelltext zum Ausprobieren hier ab: %appdata%\AquaSoft\Vision14\Scriptlets\SpurenUntereinander.sss
////////////////////////////////////////////////// // GUI ////////////////////////////////////////////////// // Name und Beschreibung des Menüeintrags function OnGetGUI: string; begin Result := '[' +'{"Caption":"Untereinander anordnen","Type":"title"}' +',{"Caption":"Platziert alle Objekte eines Containers untereinander.","Type":"description"}' +']'; end; ////////////////////////////////////////////////// // Ausführung ////////////////////////////////////////////////// procedure SetTracks(const SlideShowObject: ISlideShowObject); begin if SlideShowObject.Count = 0 then Exit; for var i := 0 to SlideShowObject.Count - 1 do begin var Item := SlideShowObject[i]; Item.Track := i; // Spurnummer setzen Item.Offset := 0; // Abstand zum Spuranfang entfernen) end; end; procedure OnExecute(Parameters: IParameters); begin var Item := DocumentController.GetFirstSelected; while Item <> nil do begin SetTracks(Item as ISlideShowObject); // Spuren für alle Kindelemente neu setzen Item := DocumentController.GetNextSelected(Item); // weiter zum nächsten markierten Eintrag end; end;
5. Beispiel: Zugriff auf Parameter
In diesem Scriptlet definiert die GUI zwei Werte, die der Anwender eingeben kann. Hier wird die GUI über die Hilfsfunktion GUIControl zusammengebaut, was etwas übersichtlicher ist, als direkt ein JSON-Script zu konstruieren.
////////////////////////////////////////////////// // GUI ////////////////////////////////////////////////// // Name und Beschreibung des Menüeintrags function OnGetGUI: string; begin Result := '[' + GUIControl(, 'Scriptlet-Titel', cGUITitle) + ',' + GUIControl(, 'Scriptlet-Beschreibung', cGUIDescription) // verwenden Sie 'Description' anstelle von cGUIDescription, falls die Konstante noch nicht definiert ist. + ',' + GUIControl('key1', 'Ein String-Wert', cGUIEdit) + ',' + GUIControl('key2', 'Ein anderer Wert', cGUISlider, '"Min":0, "Max":100, "Increment":5, "Center":25, "Unit": "%", "Decimals": 1') + ']'; end; ////////////////////////////////////////////////// // Ausführung ////////////////////////////////////////////////// procedure OnExecute(Parameters: IParameters); begin var wert1 := Parameters.GetValueAsString('key1'); var wert2 := Parameters.GetValueAsFloat('key2'); // ... end;