AviSynth Syntax - Script Variablen

Diese Seite zeigt, wie man Variablen verwendet, um Zwischenwerte für die weitere Verarbeitung in einem Skript zu speichern. Es beschreibt auch die Datentypen, die durch Skripte manipuliert werden können, und wie literals (Konstanten) jener Typen geschrieben werden.

Ein Variablenname kann eine Zeichenkette von praktisch beliebiger Länge sein (mehr als 4000 Zeichen in Avisynth 2,56 und höher), die (englische) Buchstaben, Ziffern und Unterstriche (_) enthalten, aber keine anderen Zeichen. Der Name darf nicht mit einer Ziffer beginnen.

Sie können Zeichen aus der ihrer Sprachen Codepage (locale) in Strings und Dateinamen verwenden (ANSI nur 8 Bit, keine Unicode).

Die Anordnung einer Variable in einem Ausdruck wird bestimmt durch die

  AviSynth Syntax.

Variablen können einen Wert haben von einem der folgenden Typen:

Ein Videoclip, der video und/oder Audio enthät. Ein Skript muss immer einen Wert dieses Typs zurückgeben.
Eine Folge von Zeichen, um Text darzustellen. String-Literale werden als Text geschrieben, der entweder durch "Anführungszeichen" oder "" "drei Anführungszeichen""" eingerahmt ist. Der Text kann beliebige Zeichen enthalten mit Ausnahme des abschließenden Anführungszeichen oder Dreifach-Anführungsstrich-Sequenzen.
Das Handbuch erwähnt noch TeX-Stil Zitate, aber AviSynth arbeitet schon nicht mehr seit Version 1.03 auf diese Weise. Wenn Sie ein Anführungszeichen innerhalb eines Strings setzen müssen, müssen Sie im Python-Stil  """drei Anführungszeichen""" setzen. Zum Beispiel:
Subtitle("""AVISynth is as they say "l33t".""") 
Alternativ können Sie in erweiterte Windows-ASCII Code geschweifte Anführungszeichen innerhalb der Zeichenfolge anstelle von geraden Anführungszeichen verwenden, um diese Einschränkung zu umgehen.
Eine Ganzzahl. Ein Integer-Literal wird als Folge von Ziffern eingegeben, wahlweise mit einem + oder - am Anfang. Der Wert kann in hexadezimal durch Voranstellen eines "$"-Zeichens geschrieben werden. Zum Beispiel ist $FF sowie $ff (Großschreibung ist egal) gleich 255.
Eine Gleitkommazahl. Literale sind eine Folge von Ziffern mit einem Dezimalpunkt  (.) irgendwo darin und einem optionalen + oder -. Zum Beispiel wird +1. als Fließkommazahl behandelt. Beachte, dass die Exponenten-Notation nicht unterstützt wird.
Boolsche Werte sind entweder wahr (true) oder falsch (false). Darüber hinaus können sie wie folgt geschrieben werden''yes" oder ''no'', aber du solltest diese Formen vermeiden (sie sind nur aus Kompatibilitätsgründen erhaltenr).
Ein generischer Typname. Er kann nur innerhalb der Argumenteliste einer Nutzerdefinierten Skriptfunktion verwendet werden, um ein Argument deklarieren zu können, das von jedem Typ sein kann (int, float, bool, string, oder clip). Du msust dann mithilfe Boolscher Funktionen explizit ihren  Typ feststellen und entsprechende Maßnahmen ergreifen.

Es gibt einen anderen Typ, der intern von Avisynth verwendet  wird - der void oder 'undefined' Typ. Seine Hauptanwendung ist in Verbindung mit  optionalen Argumenten der Funktion. Siehe Defined()-Funktion.

Variablen können entweder lokal sein (gebunden an den lokalen Rahmen des Script-Blocks, der gerade ausgeführt wird) oder global. Globale Variablen gelten im gesamten Skriptzusammenhang und auf sie kann zugegriffen werden durch alle Internen Funktionen, Nutzerdefinierte Scriptfunktionen, Laufzeitumgebung Scripte and das auch durch das Hauptscript selbst.

Um eine globale Variable zu definieren und / oder ihr einen Wert zuweisen, musst du ihrem Namen das Schlüsselwort global auf der linken Seite der Zuweisung voranstellen. Das Schlüsselwort ist nicht erforderlich (eigentlich ist es nicht erlaubt), um den Wert einer globalen Variable zu lesen. Beispiele:

global canvas = BlankClip(length=200, pixel_type="yv12")
global stroke_intensity = 0.7
...
global canvas = Overlay(canvas, pen, opacity=stroke_intensity, mask=brush)

Um eine Variable zu deklarieren, schreibe einfach den Namen der Variablen, dem ein '=' (ein Gleichheitszeichen) folgt, gefolgt von ihrem Anfangswert. Der Typ muss nicht deklariert werden, er wird durch den Wert festegelegt, der ihr zugewiesen wurde (und kann sogar durch nachfolgende Zuweisungen geändert werden). Der einzige Ort, wo es erlaubt ist (wenn auch nicht unbedingt erforderlich), den Typ einer Variablen festzulegen, ist in den Argument-Listen Benutzerdefinierter Skriptfunktionen. Beispiele:

b = false      # deklariert eine Variable namens 'b' des Typs 'bool' und initialisiert sie mit 'false'
x = $100 # Typ int (Initialwert ist hexadecimal)
y = 256 # Typ int (Initialwert ist dezimal)
global f = 0.0 # Typ float, global deklariert
...
function mein_umfaerbe_filter(clip c, int neu_farbe, float menge, val "nutzerdaten") { ... }

$Date: 2008/12/21 09:23:02 $