Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Kompendium der Informationstechnik
 von Sascha Kersken
EDV-Grundlagen, Programmierung, Mediengestaltung
Buch: Kompendium der Informationstechnik
gp Kapitel 10 Multimedia
  gp 10.1 Einführung
  gp 10.2 Audio-Bearbeitung mit Sound Forge
    gp 10.2.1 Bedienelemente von Sound Forge
    gp 10.2.2 Sound aufnehmen oder beschaffen
    gp 10.2.3 Berechnungen und Effekte
  gp 10.3 Videoschnitt mit Adobe Premiere
    gp 10.3.1 Die Arbeitsmittel von Premiere
    gp 10.3.2 Einen Film schneiden und erstellen
  gp 10.4 3-D-Grafik und -Animation
    gp 10.4.1 3ds max
    gp 10.4.2 Cinema 4D
  gp 10.5 Das Autorensystem Macromedia Director
    gp 10.5.1 Director-Grundlagen
    gp 10.5.2 Darsteller erstellen und bearbeiten
    gp 10.5.3 Lingo-Grundlagen
    gp 10.5.4 Export und Veröffentlichung von Director-Filmen
  gp 10.6 Zusammenfassung

gp

Prüfungsfragen zu diesem Kapitel (extern)


Galileo Computing

10.5 Das Autorensystem Macromedia Director  downtop

Der letzte und in gewisser Weise wichtigste Schritt einer Multimedia-Produktion besteht darin, alle zuvor erstellten und bearbeiteten Mediadaten zusammenzufügen, zu koordinieren und mit einer Ablaufsteuerung zu versehen. Wie bereits zu Beginn dieses Kapitels beschrieben, kann die Ablaufsteuerung je nach Einsatzzweck des Projekts interaktiv sein oder auch nicht. Das bekannteste und verbreitetste Programm für die Zusammenstellung von Multimedia-Anwendungen, insbesondere für interaktive Präsentationen auf CD-ROM und DVD, ist Macromedia Director.

Andere Autorensysteme

Selbstverständlich gibt es eine Reihe von Alternativen zu Director, sie alle haben allerdings etwas andere Schwerpunkte und Funktionen: Asymetrix ToolBook ist nicht mehr sehr weit verbreitet und hat den Nachteil, dass die erstellten Produkte nur unter Windows laufen. Mediator von Matchware besitzt einen geringeren Funktionsumfang als Director, ist aber günstiger. Schließlich bietet Macromedia selbst noch zwei weitere Produkte dieser Art an: Authorware ist auf die Erstellung von Lern- und Trainingsprogrammen (CBT) spezialisiert, während das in Kapitel 20 ausführlich vorgestellte Programm Flash den Quasi-Standard für interaktives Multimedia im Web bildet.

Die Firma Macromedia wurde 1984 unter dem Namen MacroMind gegründet; als sie später die weiter oben erwähnte Firma AuthorWare aufkaufte, wurde sie in Macromedia umbenannt. Eines ihrer ersten Programme war eine Macintosh-Anwendung namens VideoWorks, mit der einfache 2-D-Animationen erstellt werden konnten. Eine Ergänzung dazu wurde bald unter dem Namen VideoWorks Interactive vertrieben; die Präsentationen konnten durch Skriptprogrammierung mit einfacher interaktiver Funktionalität versehen werden. Wenig später wurde dieses Produkt in Director umbenannt und entsprechend weiterentwickelt.

Im Lauf der Jahre wurden weitere Funktionen hinzugefügt: Das Programm unterstützte immer mehr verschiedene Medientypen und Präsentationsformen, insbesondere wurde die eingebaute Programmiersprache Lingo immer stärker ausgebaut. Die aktuelle Version heißt im Rahmen von Macromedias Produktpalette Director MX; formal müsste sie Director 9 heißen.

Heutige Bedeutung von Director

Die Bedeutung von Director ist insgesamt ein wenig rückläufig – die große Zeit der Multimedia-CD-ROM ist vorbei. Die meisten Titel, die noch erscheinen, werden von einigen wenigen Medienunternehmen und meist von festen Teams produziert. Die bei weitem wichtigste Plattform für Multimedia ist heute dagegen das World Wide Web. Zwar entwickelte Macromedia schon sehr früh das Shockwave-Format, mit dessen Hilfe sich komprimierte Director-Filme im Web darstellen lassen, aber die überwiegende Lösung für Multimedia-Anwendungen im Web ist Flash.


Galileo Computing

10.5.1 Director-Grundlagen  downtop

Mit Macromedia Director werden multimediale Präsentationen nach der Film-Metapher entworfen – der Name des Programms (Regisseur) lässt bereits darauf schließen. Auch die anderen Begriffe sind der Film- und Theaterwelt entlehnt: Sie bekommen es mit einer Bühne, einem Drehbuch und jeder Menge Darstellern zu tun. Die Film-Metapher besagt, dass Ihre Präsentation aus Einzelbildern (Frames) besteht, die automatisch nacheinander abgespielt werden. Andere Autorensysteme verwenden im Gegensatz dazu etwa eine Buch-Metapher: Die Anwendung besteht aus einzelnen »Seiten«, zwischen denen durch »Umblättern« gewechselt werden kann.

Wichtige Fenster

Die Arbeitsoberfläche von Director besteht aus zahllosen Fenstern und Paletten. Es ist weder ratsam noch üblich, zu viele von ihnen gleichzeitig auf der Bühne zu halten, sodass es sich lohnt, die Tastenkürzel zu erlernen, mit deren Hilfe die wichtigsten von ihnen geöffnet und wieder geschlossen werden können. Aus demselben Grund sollten Sie stets die Symbolleiste geöffnet halten (Fenster • Symbolleiste oder (STRG) + (ALT) + (Shift) + (B)), die ebenfalls den schnellen Zugriff auf eine Reihe von Arbeitsfenstern ermöglicht. Abbildung 10.9 zeigt eine Übersicht der Arbeitsoberfläche des Programms.


Abbildung 10.9   Die Arbeitsoberfläche von Macromedia Director MX

Abbildung
Hier klicken, um das Bild zu Vergrößern


Die Bühne

Das allerwichtigste Fenster ist die Bühne (Stage), sie ist der eigentliche Ort des Geschehens: Hier werden sämtliche sichtbaren Objekte arrangiert, um zusammen den Inhalt Ihres Films zu bilden. Aktiviert wird die Bühne mit dem Befehl Fenster • Bühne oder (STRG) + (1). Beachten Sie, dass in Ihrer fertigen Produktion später nur diejenigen Teile zu sehen sind, die sich innerhalb des eigentlichen Bühnenrechtecks befinden.

Unter der eigentlichen Bühne befindet sich ein Zoom-Popup-Menü, mit dem sich die Ansichtsgröße der Bühne ändern lässt. Die tatsächliche Bühnengröße wird übrigens unter Modifizieren • Film • Eigenschaften beziehungsweise (STRG) + (Shift) + (D) eingestellt.

Das Steuerpult

Mit dem nächsten Fenster, dem Steuerpult, können Sie den Film steuern, also abspielen, stoppen und so weiter. Geöffnet wird das Element mittels Fenster • Steuerpult oder (STRG) + (2). Von links nach rechts finden Sie hier die folgenden Funktionen:

gp  Zurückspulen
gp  Stop
gp  Abspielen
gp  Ein Frame zurückblättern
gp  Ein Frame vorblättern
gp  Nummer des aktuellen Frames
gp  Maßeinheit und Wert des gewünschten Abspieltempos. Dabei handelt es sich um einen Maximalwert – wenn der Rechner, auf dem der Film abgespielt wird, die gewünschte Geschwindigkeit nicht bewältigt, wird er entsprechend langsamer abgespielt.
gp  Maßeinheit und Wert des tatsächlichen Abspieltempos
gp  Schleifenmodus ein- oder ausschalten
gp  Regler für die globale Lautstärke
gp  Nur ausgewählte Frames abspielen (die im Drehbuch markiert wurden)

Wie Sie bemerkt haben werden, stehen einige der wichtigsten dieser Funktionen auch am unteren Rand des Bühnenfensters zur Verfügung.

Die Besetzung

Die Besetzung (Cast Library) enthält alle Darsteller (Cast Members) Ihres Films. Trotz des Namens handelt es sich dabei nicht nur um visuelle Elemente, sondern zum Beispiel auch um Sounds, Texte, Lingo-Skripte und so weiter. Geöffnet wird die Besetzung über Fenster • Besetzung oder (STRG) + (3).

Das Fenster besitzt zwei verschiedene Ansichtsmodi: Der Standardmodus ist die detaillierte Liste, der klassische Modus ähnelt dagegen einem Setzkasten. Sie können durch den zweiten Button von links am oberen Rand des Fensters zwischen den beiden Modi wechseln. Bei der Listenansicht werden die folgenden Informationen angezeigt:

gp  Symbol des Darstellertyps
gp  Darstellername (oder Nummer, wenn unbenannt)
gp  Darstellernummer
gp  Falls der Darsteller seit dem letzten Speichern geändert wurde, wird hier ein * angezeigt.
gp  Zugeordnetes Skript/Verhalten
gp  Typbezeichnung, zum Beispiel Bitmap, Sound oder Text
gp  Datum und Uhrzeit der letzten Änderung
gp  Eigene Kommentare

Der Vorteil besteht darin, dass nach jeder dieser Anzeigekategorien sortiert wird, indem Sie auf den Spaltenkopf, also den Titel, der gewünschten Kategorie klicken: Bei einem Klick wird aufsteigend sortiert, beim zweiten absteigend.

Bei der klassischen Ansicht erhalten Sie erheblich weniger Informationen: eine Darstellerminiatur, darunter den Namen beziehungsweise die Nummer und rechts unten im Anzeigefeld das Typsymbol. Der Vorteil dieser Ansicht ist, dass sie eine schnelle Übersicht über die verschiedenen Darsteller bietet.

Das Besetzungsfenster verfügt in der obersten Reihe über die folgenden Bedienelemente:

gp  Umschalter für weitere Besetzungen
gp  Anzeigeart (Liste oder klassisch)
gp  Blättern zum vorherigen beziehungsweise nächsten Darsteller
gp  Stellvertreter zum Ziehen der Auswahl: Wenn Sie sehr viele Darsteller markiert haben oder einen von ihnen im Besetzungsfenster sehr weit verschieben möchten, können Sie statt an der Auswahl an diesem kleinen Quadrat ziehen.
gp  Ein Feld mit dem Namen des aktuell ausgewählten Darstellers. Sie können den Namen hier neu eintragen beziehungsweise ändern.
gp  Die Schriftrolle steht für ein Darstellerskript (ein Lingo-Skript, das dem Darsteller direkt zugeordnet ist); per Klick können Sie eines neu erstellen oder das vorhandene ändern. Ist der aktuelle Darsteller selbst ein Skript, dann aktiviert dieser Button dessen eigene Bearbeitung.
gp  Der Button für die Darsteller-Eigenschaften öffnet die entsprechende Palette im weiter unten behandelten Eigenschafteninspektor.

Das Drehbuch

Das Drehbuch liefert eine Übersicht über den Ablauf des Films. Der englische Name Score bedeutet übrigens Partitur, nicht Drehbuch. Der Vergleich liegt näher, weil das Director-Drehbuch wie eine Partitur den zeitlichen Ablauf vieler paralleler Kanäle darstellt. Aufgerufen wird es über Fenster • Drehbuch oder mit (STRG) + (4).

Die Zeilen des Drehbuchs werden Kanäle genannt; es handelt sich um die Ebenen des Films. Der Inhalt von Kanal 1 liegt dabei ganz im Hintergrund. Je höher die Kanalnummer, desto weiter vorn befindet sich ein Objekt. Über diesen nummerierten Sprite-Kanälen gibt es eine Reihe spezieller Effektkanäle, die mit Hilfe des Buttons oben rechts ein- und ausgeblendet werden können:

gp  Im Tempokanal können Sie die Abspielrate des Films ändern. Außerdem besteht die Möglichkeit, auf eine Benutzeraktion oder ein spezielles Audio- oder Video-Ereignis zu warten.
gp  Der Palettenkanal dient dazu, den Darstellern des Films dynamisch eine andere Farbpalette zuzuordnen. Sie können sich zwischen einem abrupten Wechsel oder einem allmählichen Übergang entscheiden. Sichtbar ist dies nur bei einer Systemfarbtiefe von 8 Bit.
gp  Der Übergangskanal ermöglicht das Einstellen der verschiedensten Übergangseffekte, die den Überblendungen in Premiere (siehe oben) ähneln. Beachten Sie, dass der jeweilige Übergang im Ziel-Frame eingestellt werden muss; er erfolgt also stets vom vorherigen zum aktuellen Frame.
gp  Die beiden Soundkanäle können mit verschiedenen Sounddarstellern (importierten Sounddarstellern) versehen oder per Lingo angesteuert werden – nähere Einzelheiten finden Sie weiter unten.
gp  Der stets sichtbare Skriptkanal ist für eine spezielle Sorte von Lingo-Skripten vorgesehen, die ebenfalls weiter unten genau erläutert wird.

Sprites

Ein Objekt im Drehbuch (also eigentlich im Film beziehungsweise auf der Bühne) ist nicht der Darsteller selbst, sondern ein Abbild dieses Darstellers, ein so genanntes Sprite dieses Darstellers. Auf diese Weise kann ein Darsteller beliebig oft verwendet werden, außerdem kann jedes Sprite transformiert werden, ohne den Darsteller selbst zu beeinflussen.

Die Spalten des Drehbuchs heißen dagegen Frames (in der deutschen Director-Version auch Bilder) des Films; die jeweilige Spalte ist eine Momentaufnahme all dessen, was zu einem bestimmten Zeitpunkt im Film geschieht.

Das Drehbuch verfügt über die folgenden wichtigen Bedienelemente:

gp  In der obersten Zeile können Sie Frame-Markierungen hinzufügen, also Namen für Frames, zu denen mit Hilfe von Lingo-Befehlen gesprungen wird. Unmittelbar darunter liegen die Frame-Nummern.
gp  Oben rechts befindet sich ein Button zum Ein- und Ausblenden der Effektkanäle.
gp  Links vor den Frame-Nummern können Sie die Art der Drehbuchanzeige einstellen: Standardmäßig wird die Darstellernummer eines Sprites angezeigt. Alternativ können Sie auch das Verhalten (zugeordnetes Lingo-Skript), die Position (X- und Y–Abstand vom linken oberen Bühnenrand in Pixeln) den Farbeffekt (siehe unten), Mischen (den Transparenzgrad) oder Erweitert (alle diese Eigenschaften) auswählen.
gp  Rechts neben den Frame-Nummern befindet sich das Zoom-Menü, mit dem Sie die Anzeigebreite der einzelnen Frames einstellen können.
gp  Vor jeder Kanalnummer befindet sich ein kleines Quadrat, um diesen Kanal ein- oder auszublenden. Beachten Sie, dass dies nur die Ansicht in der Director-Arbeitsumgebung betrifft; Ihr fertiges CD-ROM- oder Web-Produkt zeigt immer alle Kanäle an.
gp  Links unten finden Sie einige Farbfelder zum Einfärben ausgewählter Drehbuchbereiche. Für den Film haben sie keine Bedeutung, sind aber nützlich, um sich in umfangreichen Drehbüchern besser zurecht zu finden.

Die erste Animation

Damit Sie einen guten Einstieg in Director finden, werden Sie hier als Erstes eine kleine Animation erstellen. Die Arbeit mit Animationen war schon immer eine der wichtigsten und praktischsten Funktionen von Director. Führen Sie nacheinander die folgenden Schritte durch:

1. Wählen Sie Datei • Neu • Film oder (STRG) +(N).
       
2. Erstellen Sie im Malfenster (Fenster • Malen oder (STRG) + (5)) einen beliebigen Bitmap-Darsteller.
       
3. Ziehen Sie den fertigen Bitmap-Darsteller aus der Besetzung auf die Bühne. Im Drehbuch erscheint daraufhin ein Balken, der das erzeugte Sprite repräsentiert. Falls Sie im Drehbuch nicht woanders hingeklickt haben, befindet sich das Sprite in Kanal 1 und beginnt bei Frame 1. Der runde Punkt ganz links wird Keyframe oder Schlüsselbild genannt.
       
4. Klicken Sie im Drehbuch das kleine Rechteck an, das das Ende des Sprites markiert.
       
5. Ziehen Sie das Objekt auf der Bühne, das jetzt nur noch von einem Einzelrahmen umrandet wird, an die gewünschte Endposition. Nachdem Sie gezogen haben und loslassen, ist aus dem ursprünglichen Rechteck ein richtiges zweites Keyframe geworden. Auf der Bühne ist eine Linie zu sehen, die den Animationsverlauf kennzeichnet.
       
6. Klicken Sie im Drehbuch den Kreis am Anfang des Sprites an, der das Start-Keyframe darstellt.
       
7. Ziehen Sie das Objekt auf der Bühne an die gewünschte Startposition.
       
8. Wenn Sie möchten, können Sie zusätzlich mit gedrückter (ALT)-Taste an einem beliebigen Punkt des Animationspfades ziehen. Dadurch entsteht ein neues Keyframe und eine entsprechende Kurve.
       

Nachdem Sie all diese Schritte durchgeführt haben, können Sie den Play-Button unter der Bühne oder im Steuerpult betätigen, um sich das Ergebnis anzusehen.

Animationsoptionen

Merken Sie sich die folgenden besonderen Bearbeitungsoptionen für Sprites:

gp  Wenn Sie ein Sprite auf der Bühne anklicken oder im Drehbuch auf seinen Balken klicken, ohne ein Keyframe zu treffen, wird das ganze Sprite markiert. Auf der Bühne ist es dadurch mit einem doppelten Rahmen versehen. Wenn Sie es nun verschieben, wird das gesamte Sprite mitsamt seinem Animationspfad auf eine neue Position gesetzt.
gp  Klicken Sie dagegen im Drehbuch ein Keyframe an, ist nur die Sprite-Position an dieser einen Stelle markiert (Einzelrahmen auf der Bühne). Damit können Sie die Position an diesem Keyframe individuell festlegen.
gp  Wenn Sie, wie oben erwähnt, mit gedrückter (ALT)-Taste an einem der kleinen Punkte des Animationspfades ziehen, entsteht an dieser Stelle automatisch ein neues Keyframe. Alternativ können Sie auch mit gedrückter (ALT)-Taste eine Position zwischen zwei Keyframes im Drehbuch anklicken und diese Einzelposition anschließend auf der Bühne verschieben.
gp  Wenn ein Sprite auf der Bühne markiert ist, erscheint zusätzlich die Sprite-Überlagerung. Es handelt sich um ein kleines Rechteck mit drei kurzen Informationen: Eigenschaften des zugrunde liegenden Darstellers, Sprite-Eigenschaften und zugeordnetes Verhalten (Lingo-Skript). Durch Klick auf das Symbol am Anfang jeder Zeile können Sie die entsprechende Registerkarte des Eigenschafteninspektors aufrufen. Am rechten Rand befindet sich ein unauffälliger Regler (kleine waagerechte Linie), mit dem Sie die Deckkraft des Felds einstellen können, um es je nach Umgebung und Hintergrund besser sehen zu können.

Tweening-Optionen

Mit erweiterten Tweening-Optionen können Sie eine Animation noch individueller anpassen. Das Kunstwort »Tweening« ist eine Abkürzung für In-Betweening und bezeichnet die automatische Berechnung der Frames zwischen zwei Keyframes. Für diese Optionen können Sie ein Sprite im Drehbuch mit der rechten Maustaste anklicken (bei der Mac-Version: (CTRL) + Klick). Wählen Sie aus dem Kontextmenü die Option Tweening; alternativ können Sie das Sprite auch einfach anklicken und Modifizieren • Sprite • Tweening wählen oder (STRG) + (Shift) + (B) drücken. Es öffnet sich ein Dialogfeld mit den folgenden Einstellmöglichkeiten:

gp  Zunächst können Sie diejenigen Sprite-Eigenschaften aus- oder abwählen, die automatisch geändert werden sollen. Einige von ihnen werden erst weiter unten erläutert.
gp  Mit Hilfe der Option Krümmung können Sie einstellen, wie stark der Animationspfad abgerundet werden soll. »Linear« (links) führt das Sprite zwischen den Keyframes auf geraden Linien; »Extrem« (ganz rechts) erzeugt eine fast rechtwinklige Doppellinie zwischen ihnen, also den maximal möglichen Abstand. »Normal« erzeugt relativ glatte Kurven – für einen richtigen Kreis beziehungsweise eine Ellipse müssen Sie den Regler von »Normal« aus ein wenig nach rechts verschieben.
gp  Die Option Kontinuierlich an Endpunkten verhindert, dass eine »Spitze« zwischen dem Anfangs- und dem Endschlüsselbild entsteht; für kreis- oder ellipsenförmige Animationen ist das wichtig.
gp  Unter Geschwindigkeit können Sie wählen, wie abrupt oder allmählich Geschwindigkeitsänderungen stattfinden sollen, also wie stark oder schwach beschleunigt beziehungsweise abgebremst werden soll.
gp  Beschleunigen sorgt dafür, dass die Abstände zwischen den Positionen des Sprites in den einzelnen Frames immer größer werden; die Animation des Sprites scheint schneller zu werden. Der Prozentsatz gibt die Anzahl von Frames an, über die dies geschehen soll: 100 beschleunigt über alle Frames des Sprites, 50 nur über die erste Hälfte der Frames des Sprites und so weiter.
gp  Abbremsen funktioniert wie Beschleunigen, die Abstände zwischen den Sprite-Positionen werden kleiner. Bei einem Wert von weniger als 100 ist das Ende der Sequenz betroffen, also die letzten soundsoviel Prozent der Frames.

Arbeiten mit dem Eigenschafteninspektor

Der Eigenschafteninspektor ist eines der wichtigsten Werkzeuge von Director, weil hier fast alle Objektoptionen eingestellt werden. Er ist kontextsensitiv, zeigt also je nach ausgewähltem Inhalt nur bestimmte Registerkarten an. Aktivieren können Sie ihn mit i-Button in der Symbolleiste über Fenster • Inspektoren • Eigenschaften oder mittels (STRG) + (ALT) + (S).

Sprite-Eigenschaften

Die umfangreichsten Informationen finden Sie auf der Registerkarte Sprite:

gp  Das Schloss dient dem Sperren des Sprites, sodass es nicht versehentlich bearbeitet oder auch nur auf der Bühne ausgewählt werden kann.
gp  Die Option »Editierbar« sorgt (nur bei den weiter unten vorgestellten Textfeld-Sprites) dafür, dass Text vom Benutzer eingegeben werden kann.
gp  »Verschiebbar« bedeutet, dass das Objekt vom Benutzer gezogen werden kann, was für die Programmierung von Drag and Drop-Verhaltensweisen oder Spielen wichtig ist.
gp  »Spuren«: Bei einer Animation des Sprites werden vorherige Positionen nicht gelöscht; es zieht eine Spur hinter sich her.
gp  Mit Hilfe der beiden letzten Buttons in der Reihe können Sie das Sprite horizontal beziehungsweise vertikal kippen.
gp  Als Nächstes folgen die verschiedenen geometrischen Informationen: X und Y regeln den Abstand des Sprites von links beziehungsweise oben, gemessen am weiter unten erläuterten Registrierpunkt. L, O, R und U bestimmen den Abstand der vier Ränder des Begrenzungsrechtecks zu den entsprechenden Bühnenrändern. Mit B und H werden Breite und Höhe eingestellt.
gp  In der nächsten Zeile befindet sich ein Popup für den Farbeffekt. Dieser bestimmt die Art und Weise, wie das Sprite auf die Bühne gezeichnet wird (siehe unten). Beispielsweise bedeutet »Kopieren«, dass jeder einzelne Pixel des Darstellers auf die Bühne übertragen wird – bei Bitmaps inklusive weißem Begrenzungsrechteck. »Hintergrund transparent« stellt bei einem Bitmap sämtliches Weiß transparent; bei anderen Darstellern gelten speziellere Optionen. »Matt« unterscheidet sogar zwischen hintergrundfarbenen Pixeln, die sich innerhalb geschlossener Formen befinden, und solchen, die außerhalb liegen: Während Letztere transparent dargestellt werden, werden Erstere deckend gezeichnet.
    Die anderen Farbeffekte sorgen für spezielle Vermischungen der Spritefarbe mit den darunter liegenden Elementen. Sie sind mit den Ebenen-Zeichnungsmodi in Photoshop vergleichbar. Besonders interessant ist übrigens der Effekt Maske: Wenn Sie ihn einem Sprite zuweisen, wird der unmittelbar in der Besetzung folgende Darsteller als Maske auf den Darsteller dieses Sprites angewendet – je dunkler eine Farbe der Maske, desto deckender wird die entsprechende Stelle des Sprites dargestellt.
       
gp  Als Nächstes wird der Mischungsgrad eingestellt, also die Deckkraft des Sprites.
gp  Im unteren Abschnitt können Sie zunächst das Start- und das End-Frame des Sprites sehen oder ändern.
gp  Darunter können Sie den Dreh- und den Neigungswinkel einstellen.
gp  Vorder- und Hintergrundfarbe, die dann angeboten werden, sind nur bei Form-, Text- oder Felddarstellern und bei 1-Bit-Bitmaps wichtig (siehe unten).
gp  Die beiden Buttons ganz unten besitzen folgende Aufgaben: der linke dient dem Zurücksetzen auf die Eigenschaften des zugrunde liegenden Darstellers beziehungsweise auf Standardeinstellungen; der rechte ermöglicht das Skalieren des Sprites per Eingabe in einem entsprechenden Dialog.

Falls nur ein Keyframe des Sprites markiert ist (einfacher Rahmen auf der Bühne), betreffen die Änderungen nur dieses Frame, viele von ihnen werden dann »getweent«.

Eigenschaften in Listenansicht

Beachten Sie, dass fast jede Registerkarte im Eigenschafteninspektor oben einen Button zum Umschalten in eine Listenansicht besitzt: Die Eigenschaften erscheinen untereinander und auf Englisch in ihren Original-Lingo-Bezeichnungen. Das ist praktisch zum Erlernen der Programmierung. Weitere Registerkarten des Eigenschafteninspektors werden bei Bedarf weiter unten erläutert.


Galileo Computing

10.5.2 Darsteller erstellen und bearbeiten  downtop

Für ein Multimedia-Autorensystem wie Director ist es wichtig, dass es mit möglichst vielen verschiedenen Mediendateitypen umgehen kann. Die Anzahl der Formate, die Director importieren und verarbeiten kann, ist deshalb mit jeder neuen Version gewachsen. Heute kann er alle gängigen Bitmap-, Audio- und Videoformate importieren.

Etwas schwerer tut das Programm sich dagegen mit Vektorgrafik: Die eingebauten Vektorform-Darsteller sind nur mit wenigen Möglichkeiten ausgestattet. Der Import einzelner Vektorzeichnungen aus Programmen wie Illustrator oder FreeHand ist nicht vorgesehen. Als Ausgleich bietet Director seit einigen Versionen die Möglichkeit, Flash-Filme als Darsteller zu importieren. Inzwischen gibt es zahlreiche Lingo-Befehle, die der Steuerung eines laufenden Flash-Films beziehungsweise der Kommunikation mit ihm dienen.

Die wichtigste Neuerung, die in der vorigen Version Director 8.5 eingeführt wurde, ist die eingebaute 3-D-Unterstützung. Zwar war gutes Multimedia auch vorher schon mit dreidimenisonalen Visualisierungen komplexer Objekte oder Sachverhalte ausgestattet, aber nur in Form von Videodateien oder höchstens virtuellen Panoramen. Das Shockwave-3-D-Format bietet dagegen einen steuerbaren und interaktiv manipulierbaren Zugang zu 3-D-Welten – mit Director lassen sich neuerdings 3-D-Spiele und –Anwendungen erstellen, in denen ein Benutzer sich frei im »Raum« bewegen kann.

Für einige Medientypen sind in Director Bearbeitungswerkzeuge eingebaut, bei anderen können Sie nur gewisse Eigenschaften einstellen und die Elemente ansonsten so verwenden, wie sie sind. In den folgenden Unterabschnitten werden einige der wichtigsten Medientypen vorgestellt.

Bitmap-Darsteller

Bitmaps sind bei weitem die wichtigsten Darsteller in Director. Fast alle in diesem Programm erstellten Benutzeroberflächen, Animationen oder Interaktivitäten werden mit Hilfe der Pixelgrafik realisiert. Innerhalb von Director können Sie Bitmap-Darsteller mit dem Malfenster erstellen und bearbeiten; es lässt sich über Fenster • Malen oder (STRG) + (5) aktivieren.

Darstellerfenster-Optionen

Ganz oben besitzt das Malfenster eine Bedienleiste, die alle Darsteller-Bearbeitungsfenster gemeinsam haben:

gp  Mit dem Plus-Button können Sie einen neuen Bitmap-Darsteller erstellen.
gp  Die beiden Pfeil-Buttons ermöglichen das Blättern zum vorherigen beziehungsweise nächsten Bitmap-Darsteller.
gp  Das Quadrat ist, wie bei der Besetzung, ein Stellvertreter, um diesen Darsteller zu ziehen.
gp  Das Textfeld ermöglicht das Festlegen eines Namens für den Darsteller.
gp  Das kleine Blattsymbol verweist auf ein verknüpftes Darstellerskript.
gp  Mit dem i-Button können Sie Darsteller-Eigenschaften festlegen, also die entsprechenden Registerkarten des Eigenschafteninspektors einblenden.
gp  Als Nächstes wird die Darstellernummer angezeigt.
gp  Zum Schluss wird in einem Popup-Menü die konkrete Besetzung angezeigt, deren Mitglied der aktuelle Darsteller ist.

Das Malfenster bietet zahlreiche spezialisierte, für Director optimierte Funktionen. Vom Komfort eines vollständigen Bildbearbeitungsprogramms wie Photoshop ist es natürlich dennoch sehr weit entfernt. Sie sollten die diversen – in der Regel intuitiv verständlichen – Funktionen einfach ausprobieren. In der Werkzeugleiste am linken Rand des Fensters befinden sich die zahlreichen Mal- und Auswahlwerkzeuge, während sich oberhalb der Zeichenfläche verschiedene Transformationswerkzeuge zum Drehen, Spiegeln, Verzerren oder für Farbänderungen der jeweiligen Auswahl befinden.

Der Registrierpunkt

Eine wichtige Funktion wird hier dennoch näher erläutert, zumal sie nicht nur Bitmap-Darsteller betrifft: Mit dem linken Werkzeug in der zweiten Reihe der Malfenster-Werkzeugpalette können Sie den Registrierpunkt des aktuellen Bitmap-Darstellers einstellen. Bei Auswahl dieses Werkzeugs sehen Sie im eigentlichen Malbereich ein Fadenkreuz aus zwei dünnen Linien, das sich durch Klick versetzen lässt. Der eingestellte Punkt dient der Positionsangabe für Sprites dieses Darstellers auf der Bühne, vor allen Dingen aber auch als Angelpunkt für Drehungen des Sprites. Wenn Sie auf dieses Werkzeug doppelklicken, wird der Registrierpunkt übrigens wieder auf die physikalische Mitte des Darstellers gesetzt.

Interessant ist auch der Dialog Modifizieren • Bitmap transformieren, den Sie aufrufen können, wenn in der Besetzung ein Bitmap-Darsteller ausgewählt ist. Hier können Sie die Größe und die Farbtiefe von Bitmap-Darstellern verändern.

Oben kann die Darstellergröße (in Pixeln) geändert werden. Sie können entweder einen Pixelwert für die Breite oder Höhe (und bei Bedarf per Auswahl die Proportionen erhalten) oder einen Skalierungs-Prozentsatz eingeben.

Darunter können Sie die Farbtiefe ändern. Die ursprüngliche Farbtiefe neu erstellter Darsteller richtet sich nach der aktuellen Filmfarbtiefe, also der Farbtiefe des Betriebssystems. Diese können Sie unter Windows ändern, indem Sie mit der rechten Maustaste auf dem Desktop ins Leere klicken, Eigenschaften auswählen und auf der letzten Registerkarte (Einstellungen) im erscheinenden Dialog eine andere Farbtiefe auswählen. Unter Mac  OS X befindet sich die Einstellung unter Systemeinstellungen • Monitore, bei Mac  OS 9 dagegen unter Apfelmenü • Kontrollfelder • Monitore.

Das Erhöhen der Farbtiefe macht eigentlich nie Schwierigkeiten. Beim Vermindern ist dagegen der Unterschied zwischen Farben zuordnen (die nächstgelegene Palettenfarbe wird verwendet) oder Rastern (nicht vorhandene Farben werden durch Streuung benachbarter Farben simuliert) zu beachten. Im Allgemeinen sollten Sie Fotos besser rastern, bei flächigen Zeichnungen mit wenigen Farben dagegen besser Farben zuordnen.

In früheren Director-Versionen (bis 6.5) konnten Farben immer nur durch Palettenzuordnung zugewiesen werden, sodass es üblich war, nur mit 8 Bit Farbtiefe zu arbeiten. Seit Version 7.0 können Farben alternativ als RGB-Werte eingestellt werden, sodass es sich seit dieser Version lohnen kann, mit höheren Filmfarbtiefen zu arbeiten, zumal diese heute von fast allen Computersystemen unterstützt werden. Tabelle 10.1 zeigt die Vor- und Nachteile der Filmfarbtiefen 8 Bit und einer höheren Farbtiefe.


Tabelle 10.1   Vor- und Nachteile bei der Arbeit mit verschiedenen Farbtiefen

  8 Bit 16 bis 32 Bit
Vorteile Bei Wahl einer Palette für den gesamten Film sehen alle User – ungeachtet ihrer Farbtiefe – dasselbe. Spezielle Effekte sind möglich (Palettenübergänge und so weiter). Der Speicherbedarf ist geringer (ideal für Shockwave). Beliebige RGB-Farben können verwendet werden. Fotos und andere Halbtonbilder können ohne Änderung importiert werden.
Nachteile Fotos müssen gerastert werden und sehen in der Regel nicht besonders gut aus. Eingeschränkte Farbwahl: Alles muss aus einer Palette stammen, sonst kommt es zu Farbverschiebungen. Erhöhter Speicherbedarf (besonders bei Shockwave unerfreulich). User, die insgesamt nur 256 Farben darstellen können, sehen eventuell falsche Farben.

 

1-Bit-Bitmaps

Auf ihre Weise interessant sind im übrigen 1-Bit-Bitmaps. Sie werden ebenfalls über den Dialog Bitmap transformieren erstellt. Ein Darsteller mit dieser Farbtiefe besteht nur aus zwei verschiedenen Farben: Schwarz und Weiß. Wichtig ist, mit welchen Optionen ein Darsteller in diese Farbtiefe konvertiert wurde. Bei der Einstellung Farben zuordnen entscheidet eine einfache Schwellenwert-Operation darüber, ob ein bestimmter Pixel schwarz oder weiß wird: Pixel, deren rechnerische Helligkeit unter 50% Grau liegt, werden schwarz, alle anderen werden weiß – dies ähnelt der in Kapitel 8, Bildbearbeitung und Grafik, erläuterten Schwellenwert-Funktion in Photoshop, dort kann jedoch wenigstens dieser Wert angepasst werden. Deshalb ist es besser, das Bild vorher in Photoshop entsprechend zu behandeln und dann zu importieren. Der Import von Darstellern wird weiter unten genau beschrieben.


Abbildung 10.10   Reduktion von Bitmap-Darstellern auf 1 Bit – links das Original, in der Mitte mit »Farben zuordnen«, rechts mit »Rastern«

Abbildung
Hier klicken, um das Bild zu Vergrößern


Wählen Sie dagegen Rastern aus, so verhält sich Director ähnlich wie ein SchwarzWeiß-Laserdrucker, der ein Farbbild druckt. Die rechnerische Helligkeit jeder einzelnen Farbe wird ermittelt, und es werden, je heller diese Farbe ist, immer weniger schwarze Pixel gestreut – es entsteht so ein grob gerastertes Graustufenbild. Abbildung 10.11 zeigt die Ergebnisse im direkten Vergleich.

Kein Problem gibt es natürlich bei solchen Bildern, die von vornherein nur in schwarz-weiß angelegt wurden; genau diese sind auch die eigentlich wichtigen Kandidaten für die Konvertierung in 1 Bit. Das Nützliche an diesen Darstellern ist nämlich, dass man die von ihnen abgeleiteten Sprites einfärben kann. So können Sie unter Ersparnis von sehr viel Speicherplatz zum Beispiel eine ganze Menge von Sprites eines solchen Darstellers verwenden und unterschiedlich färben – besonders für Shockwave-Produktionen ist dies eine hervorragende Option.

Sie können einem 1-Bit-Bitmap-Sprite die Vorder- und Hintergrundfarbe zuweisen, indem Sie sie in der Sprite-Palette des Eigenschafteninspektors oder in der allgemeinen Werkzeugpalette (siehe unten) einstellen, während das Sprite ausgewählt ist. Übrigens wird die Farbe über die Frames des Sprites hinweg »getweent« (wenn dies in den oben beschriebenen Tweening-Eigenschaften angekreuzt ist). Dazu müssen Sie nur die einzelnen Keyframes des Sprites markieren und erhalten einen recht interessanten Effekt.

Im Übrigen ist hier der Farbeffekt Matt sehr interessant: Da die Hintergrundfarbe, die innerhalb geschlossener Formen erhalten bleibt, nicht weiß sein muss, sondern eingestellt werden kann, können Sie auf diese Weise zweifarbige Sprites erstellen.

Die Werkzeugpalette

Eine Reihe von Darstellertypen wird über die Werkzeugpalette (Fenster • Werkzeuge oder (STRG) + (7)) erstellt. Die Besonderheit: Diese Darsteller werden direkt auf die Bühne gezeichnet – es erscheint sofort ein Darsteller in der Besetzung und ein Sprite dieses neuen Darstellers im Drehbuch.

Nicht alle Schaltflächen der Werkzeugpalette dienen dem Erstellen neuer Darsteller. Im Einzelnen verfügt sie über die folgenden Funktionen:

gp  Auswahlwerkzeug. Ein Klick mit diesem – automatisch voreingestellten – Werkzeug wählt das entsprechende Sprite auf der Bühne aus.
    Ziehen innerhalb des Begrenzungsrahmens eines ausgewählten Sprites bewegt es auf die entsprechende Position. Wie bereits erwähnt, wird bei doppeltem Begrenzungsrahmen das ganze Sprite mitsamt seinem Animationspfad gezogen, während bei einem einzelnen Rahmen nur die Position im aktuellen Keyframe verändert wird. Ziehen mit gedrückter (Shift)-Taste beschränkt das Verschieben auf geradlinige Vielfache von 90 Grad. Ein exaktes Verschieben ausgewählter Sprites ist auch mit den Pfeiltasten (um 1 Pixel) oder mit (Shift) und den Pfeiltasten (um 8 Pixel) möglich.
       
gp  Das Drehwerkzeug. Das Sprite wird gedreht, wenn der Cursor so aussieht wie das Werkzeug und paralellogrammförmig verzerrt, wenn der Cursor ein Paralellogramm wird. Welche dieser Optionen ausgeführt wird, hängt von der Position im Begrenzungsrahmen ab. Auch die Drehung oder Neigung bezieht sich je nach Auswahl auf das gesamte Sprite oder ein einzelnes Keyframe.
gp  Die Hand oder das Ansichts-Verschiebewerkzeug verschiebt die Ansicht der Bühne, und zwar in der Regel effektiver als die Rollbalken. Wie in fast allen anderen Programmen, können Sie auch in Director alternativ die Leertaste festhalten.
gp  Die Lupe dient dazu, die Bühnenansicht zu zoomen. Ein Klick vergrößert die Bühne, während (ALT) + Klick sie verkleinert. Ein Doppelklick auf das Werkzeug selbst stellt die Originalansicht von 100% wieder her.
gp  Das Textwerkzeug (Symbol A) erzeugt einen Textdarsteller. Diese Art von Darstellern wird – vor allem im Unterschied zu den etwas anders gearteten Felddarstellern – weiter unten genau erläutert.
gp  Das Linienwerkzeug zeichnet eine Linie in der eingestellten Vordergrundfarbe. Das Begrenzungsrechteck legt den Anfangs- und Endpunkt der Linie fest. Die ganz unten in der Palette einstellbare Linienstärke wird ebenfalls angewendet. Wichtig ist hier, dass Sie nicht die oberste (dünnste) Linie wählen, denn das bedeutet, dass gar keine Linie gezeichnet wird. Beim Linienwerkzeug wird – wie bei allen anderen hier vorgestellten Formdarstellern – beim Aufziehen sowohl ein neuer Darsteller als auch ein Sprite dieses Darstellers erzeugt.
gp  Das gefüllte Rechteck zeichnet ein Rechteck, das mit der aktuellen Vordergrundfarbe beziehungsweise dem darunter einstellbaren Füllmuster aus Vorder- und Hintergrundfarbe gefüllt ist. Die Farben können einem Sprite auch im einzelnen Keyframe zugeordnet werden und werden dann bei entsprechender Einstellung im Tweening-Dialog automatisch über die Frames hinweg verändert. Das gewählte Füllmuster bleibt dagegen über den gesamten Darsteller (und nicht nur das Sprite) hinweg konstant.
gp  Ungefülltes Rechteck. Anders als beim gefüllten Rechteck wird nur ein Rahmen in der eingestellten Liniendicke erzeugt – ohne Füllung.
gp  Gefülltes abgerundetes Rechteck. Erzeugt ein Rechteck mit abgerundeten Ecken und mit der aktuellen Füllung.
gp  Abgerundetes Rechteck. Erzeugt die ungefüllte Kontur eines abgerundeten Rechtecks.
gp  Gefülltes Oval. Mit denselben Funktionen wie beim gefüllten Rechteck wird ein gefülltes Oval gezeichnet.
gp  Ungefülltes Oval. Zeichnet die Kontur eines Ovals ohne Füllung.
gp  Kontrollkästchen. Es wird ein Darsteller und ein Sprite eines Ankreuzfeldes mit Beschriftung erstellt (Checkbox). Solche Felder dienen üblicherweise dazu, beliebig viele Optionen aus einer Gruppe von Einstellungen an- und wieder abzuwählen. Dies kann jedoch nur durch Lingo-Programmierung geregelt werden. Abgesehen davon bietet Director die Möglichkeit, mit Hilfe von Bitmap-Darstellern viel ansprechendere und besser zur Umgebung oder zum Design des eigenen Films passende Auswahlelemente zu erstellen.
gp  Optionsfeld. Erstellt ein Optionsfeld (auch Radiobutton genannt) mit Beschriftung. Dieses Element wird gewöhnlich verwendet, um nur eine Auswahl aus mehreren Möglichkeiten zuzulassen. Auch diese Funktionalität lässt sich nur über Lingo verwirklichen.
gp  Felddarsteller. Ähnlich dem Textdarsteller ist ein Felddarsteller ein Element zur Darstellung von Text auf der Bühne. Anders als jener ist er aber mit weniger typografischen und mehr technischen Optionen ausgestattet.
gp  Tastendarsteller. Stellt eine einfache Schaltfläche mit Beschriftung zur Verfügung, die per Lingo mit einem Verhalten versehen werden kann, das beim Anklicken ausgeführt wird. Eine eigene Schaltflächen-Registerkarte im Eigenschafteninspektor erlaubt übrigens das nachträgliche Umstellen des Schaltflächentyps zwischen Kontrollkästchen, Optionsfeld und Taste.
gp  Vordergrundfarbe. Diese Farbe ist die Füllfarbe von Formdarstellern, wenn nicht gerade ein Füllmuster ausgewählt ist. Außerdem ist sie die Rahmen- und die erste Musterfarbe sowie die Textfarbe bei Text-, Feld- und Schaltflächendarstellern.
gp  Hintergrundfarbe. Dies ist die Hintergrundfarbe von Text-, Feld- und Schaltflächendarstellern, außerdem die zweite Musterfarbe.
gp  Füllmuster. Für die gefüllten Formdarsteller Rechteck, abgerundetes Rechteck und Oval können Sie hier ein Füllmuster auswählen. Dieses Muster wird, anders als die pro Sprite und Keyframe austauschbaren Farben, für den gesamten Darsteller verbindlich festgelegt. Ähnliche Muster finden Sie innerhalb des Malfensters auch als spezielle Füllung für Bitmap-Darsteller.
gp  Linienstärke. Hier können Sie verschiedene Linienstärken für Liniendarsteller und die Umrandungen der ungefüllten oder mit Mustern gefüllten Formdarsteller einstellen. Wichtig ist, dass bei der obersten (dünnsten) Linienstärke gar keine Linie gezeichnet wird – diese Linie ist also nicht für das Linienwerkzeug und die ungefüllten Formdarsteller geeignet!

Beachten Sie, dass sämtliche Formdarsteller, also Rechteck, Oval und so weiter über die Registerkarte Form im Eigenschafteninspektor nachträglich ineinander konvertiert werden können. Das Ankreuzfeld Gefüllt regelt (außer bei Linien) zusätzlich, ob die gefüllte oder die nicht gefüllte Variante verwendet werden soll.

Text- und Felddarsteller

Die beiden grundsätzlichen Darstellertypen für Text auf der Bühne unterscheiden sich leicht voneinander: Textdarsteller besitzen feiner einstellbare typografische Optionen und sind deshalb eher für statischen beziehungsweise per Lingo-Skript gesetzten Text geeignet. Felddarsteller eignen sich dagegen eher für die Texteingabe. Für jeden dieser beiden Darstellertypen gibt es eine eigene, spezielle Registerkarte im Eigenschafteninspektor.

Textdarsteller-Optionen

Bei Textdarstellern können Sie die folgenden wichtigen Einstellungen vornehmen:

gp  Anzeige. Seit Director 8.5 können Sie sich an dieser Stelle zwischen normalem Text und 3-D-Text entscheiden. Für Letzteren gibt es eine weitere Registerkarte, auf der Sie unter anderem seine Extrusionstiefe einstellen können.
gp  Rahmen. Hier wird festgelegt, ob sich die Größe des Textdarstellers ändern darf: Anpassen bedeutet, dass die Breite feststeht, während die Höhe je nach Inhalt variiert; Rollen heißt, dass Breite und Höhe feststehen und das Sprite mit einem Rollbalken ausgestattet wird; Fest heißt schließlich, dass Breite und Höhe bestehen bleiben und zu viel Text eventuell verschluckt wird.
gp  Bearbeitbar. Text kann zur Laufzeit vom Benutzer eingegeben werden. In der Regel stellen Sie diese Eigenschaft besser beim einzelnen Sprite oder gleich per Lingo ein als für den gesamten Darsteller.
gp  Text umbrechen. Wenn ein Wort nicht mehr in die Zeile passt, wird automatisch ein Zeilenwechsel durchgeführt.
gp  Tab. Zwischen mehreren bearbeitbaren Textdarstellern und anderen interaktiven Elementen kann mit der (TAB)-Taste gewechselt werden.
gp  Direkt auf Bühne. Der Textdarsteller wird direkt vom Grafiktreiber gezeichnet, nicht von Director. Der Vorteil besteht in einer besseren Performance, der Nachteil ist, dass kein Inhalt ein Sprite dieses Darstellers überdecken kann.
gp  Hyperlink-Stile verwenden. Der Darstellertext kann mittels Lingo durch einfache HTML-Tags formatiert werden; Hyperlinks sind möglich und werden hervorgehoben.
gp  Anti-Alias. Der Text wird durch Farbmischung der Randpixel geglättet, bei zu kleinen Schriften wirkt dies zu matschig. Deshalb können Sie hier eine Mindestgröße angeben (bei filigranen Serifenschriften wählen Sie sogar besser 16 Punkt als 14 Punkt).
gp  Unterschneiden. Die Abstände bestimmter Zeichenkombinationen werden angepasst, um ein stimmigeres Schriftbild zu erzeugen – auch hier wird eine Mindestgröße angegeben, da der Effekt bei zu kleinen Schriften manchmal störend wirkt.
gp  Vor-Rendern. Bei Auswahl dieser Option wird der Text des Darstellers in ein Bitmap umgerechnet, sodass die verwendete Schrift immer erhalten bleibt.

Eine weitere interessante Besonderheit bei Textdarstellern ist es, dass die verwendeten Schriftarten sowohl bei selbstlaufenden Programmen (Projektoren) als auch bei Shockwave-Exports mit in den fertigen Film verpackt werden.

Felddarsteller

Bei Felddarstellern sollten Sie dagegen nur Basisschriften des Betriebssystems verwenden, das heißt Arial, Times New Roman oder Courier New unter Windows beziehungsweise Helvetica, Times oder Courier auf dem Mac. Die Schriften werden auf keinen Fall mit in den Film gepackt. Bei exotischeren Schriften ist es fraglich, ob sie auf dem jeweiligen Zielrechner installiert sind. Im Übrigen sind auch Unterschneidung und Anti-Alias nicht möglich. Aus diesen Gründen verbrauchen Felddarsteller weniger Speicher und sind so besonders gut für Shockwave-Produktionen sowie, wie gesagt, für die Texteingabe geeignet.

Sie können für Felddarsteller die folgenden zusätzlichen Einstellungen auf der Registerkarte Feld im Eigenschafteninspektor vornehmen:

gp  Die Option Rahmen besitzt eine zusätzliche Einstellmöglichkeit: Auf Feldgröße beschränken bedeutet, dass der Text nur bis zum Ende der letzten Zeile reichen kann, was für die Texteingabe wichtig ist.
gp  Im unteren Teil des Dialogs finden Sie diverse Optionen für die Randgestaltung: Sie können einen Schlagschatten für die Textbox, den Rahmen der Textbox, einen Schlagschatten für den Text selbst sowie den Abstand des Textes zu seinem Rahmen einstellen. Für alle Optionen können Sie Werte zwischen 0 und 5 Pixeln wählen.

Vektorform-Darsteller

Bereits in Kapitel 8, Bildbearbeitung und Grafik, wurde die Überlegenheit der Vektorgrafik gegenüber Bitmaps für einfache Zeichnungen angesprochen: Sie benötigt weniger Speicherplatz und ist ohne Qualitätsverlust frei skalierbar. Gegenüber den ebenfalls vektororientierten Formdarstellern haben exakte Vektordarsteller drei weitere wichtige Vorteile: Sie können eine beliebige Form annehmen, haben einen beliebig wählbaren Registrierpunkt und können mit einem Farbverlauf gefüllt werden.

Um einen Vektordarsteller zu erstellen, benötigen Sie das Vektorform-Fenster: Fenster • Vektorform oder (STRG) + (Shift) + (V). Hier finden Sie eine Werkzeugleiste mit den folgenden wichtigen Funktionen:

gp  Der Auswahlpfeil dient der Auswahl eines Objekts, dem Ziehen eines einzelnen Eckpunkts (mit (STRG)) oder dem Umwandeln eines Eckpunkts in einen Kurvenpunkt (mit (ALT) ziehen).
gp  Mit der Zeichenfeder wird bei einfachem Klick ein neuer Eckpunkt gezeichnet; Ziehen erzeugt dagegen einen Kurvenwendepunkt. Eine Form wird entweder durch Ziehen oder Klicken am Ursprungspunkt oder aber durch Ankreuzen von zu geschlossen. Das Verfahren ähnelt dem Arbeiten in Illustrator (siehe Kapitel 8).
gp  Das Registrierpunkt-Werkzeug funktioniert genau wie sein Pendant im Malfenster.

Alle weiteren Funktionen sind im Grunde intuitiv verständlich oder wurden bereits im Zusammenhang mit anderen Optionen des Programms erläutert. Ganz unten wird die Füllungsart der Vektorform ausgewählt. Von links nach rechts gibt es folgende Einstellungen: »Keine Füllung« (nur Konturlinie), »einfarbige Füllung« und »Farbverlauf«. Darüber werden die einzelnen Farben als solche eingestellt.

Anders als bei Bitmap-Darstellern muss die Hintergrundfarbe einer Vektorform nicht weiß sein, sondern kann hier ausgewählt werden. Dennoch wird die Hintergrundfarbe auch bei Sprites dieses Darstellertyps ausgeblendet, wenn der Sprite-Farbeffekt Hintergrund transparent ausgewählt wird.

Importierte Darsteller

Bisher wurden lediglich Darsteller behandelt, die innerhalb von Director erstellt wurden. Gerade Bitmap-Darsteller, aber auch Audio, Video und Texte, werden dagegen häufig importiert. Dafür müssen Sie zunächst die Importfunktion aufrufen: Wählen Sie Datei • Importieren oder drücken Sie (STRG) + (R). Der erscheinende Dialog besitzt die folgenden wichtigen Optionen:

gp  Die Komponente zur Dateiauswahl wird vom jeweiligen Betriebssystem (Windows oder Mac  OS) zur Verfügung gestellt und entspricht damit üblichen Datei-öffnen-Dialogen; je nach Version kann sie unterschiedlich aufgebaut sein.
gp  Der Dateityp kann vorgewählt werden, um in einem Verzeichnis nur bestimmte Sorten von Dateien anzeigen zu lassen. An der Liste können Sie gut sehen, welche Dateitypen überhaupt importiert werden können. Beachten Sie, dass Sie unter Mac  OS manchmal »Alle Dateien« auswählen müssen, um in der Auswahl manche Dateien zu sehen, deren Ressourceninformationen nicht verfügbar sind.
gp  Der Button Importieren dient dazu, entweder die oben in der Dateiliste ausgewählte Datei oder die unten in die Auswahlliste übernommenen Dateien zu importieren; anschließend wird der Dialog geschlossen. Abbrechen schließt ihn dagegen, ohne etwas zu importieren.
gp  Mit dem Button Hinzufügen wird die aktuell ausgewählte Datei zur Auswahl im unteren Bereich hinzugefügt. Auf diese Weise können mehrere Dateien in einem Durchgang importiert werden.
gp  Mittels Alle hinzufügen werden alle Dateien aus dem aktuellen Verzeichnis zur Auswahl hinzugefügt, die dem eingestellten Dateityp entsprechen.
gp  Entfernen dient dazu, die ausgewählte Datei wieder aus der Auswahlliste zu entfernen.
gp  In der Auswahlliste befinden sich alle Dateien, die bereits für den Import ausgewählt wurden. Mit den Buttons Nach oben und Nach unten können Sie die Position der ausgewählten Datei in der Liste verschieben. Die Position der Dateien bestimmt die Reihenfolge der späteren Darsteller in der Besetzung.
gp  Unter Media wird ausgewählt, wie die zu importierende Datei – jeweils die gerade in der Liste ausgewählte – beim Import genau behandelt werden soll:
Standardimport fügt den neuen Darsteller zum internen Datenbestand der Director-Datei hinzu. Bei Bitmaps wird nur ein »flaches« Abbild der Datei übergeben, das keinerlei zusätzliche Arbeitsdaten enthält. Mit externer Datei verknüpfen. Die Datei wird nicht in die inneren Daten des Director-Films integriert. Stattdessen wird zwar intern ein Darsteller angelegt, dieser erhält seine Daten jedoch nach wie vor aus der verknüpften Datei. Vorteil: Wird diese Datei später in ihrem Originalprogramm bearbeitet, ändert sich auch der Darsteller in Director. Beachten Sie, dass die externe Datei dann natürlich auch bei der Auslieferung des Films an der erwarteten Stelle mitgeliefert werden muss. Digitalvideodateien (QuickTime-Filme beziehungsweise AVI) werden übrigens immer verknüpft und nie wirklich importiert, auch nicht, wenn die Option »Standardimport« ausgewählt wird. Originaldatei zur Bearbeitung integrieren. Wie beim Standardimport wird die Datei in den Director-Film importiert. Zusätzlich zu den als Darsteller brauchbaren Daten werden jedoch Originaldaten der Datei mitimportiert, bei Bitmap-Formaten anderer Anwendungen (etwa Photoshop-PSD oder Fireworks-PNG) werden zum Beispiel auch die Informationen über Ebenen, Text (der extern Text bleibt, aber in Director als Teil des Bitmaps erscheint) und so weiterimportiert. Sie können dann innerhalb von Director den Darsteller und Bearbeiten • Externen Editor starten auswählen. PICT-Dateien als PICT importieren. Eine Mac-PICT-Datei (unter Windows mit der Endung .pct oder .pict) wird bei dieser Auswahl nicht als Bitmap-, sondern als PICT-Darsteller importiert. Dieser Darstellertyp besitzt zusätzliche Optionen.

Importierte Bitmaps

Die wahrscheinlich häufigste Sorte von importierten Dateien sind Bitmap-Dateien. Director unterstützt alle gängigen Typen von Bitmap-Bildern. Wenn Sie ein Bitmap zum Import ausgewählt haben, erscheint ein weiterer Dialog, in dem Sie die Farbtiefe bestimmen können, mit der es importiert werden soll: Die Auswahl Grafik behält die Original-Farbtiefe der importierten Datei bei, während Bühne den Darsteller in die Farbtiefe des Films, also in die aktuelle Farbtiefe des Betriebssystems, umwandelt.

Die Optionen zur Auswahl der Farbpalette sind nur aktiv, wenn es sich um eine 8-Bit-Datei (oder noch weniger) handelt oder wenn sie bei 8 Bit Systemfarbtiefe mit der Einstellung Bühne importiert werden soll: Importieren sorgt dafür, dass die Farbpalette der Datei als separater Darsteller importiert wird (so genannter Paletten-Darsteller), während Anpassen das Bild an eine der vorhandenen (in Director integrierten) Paletten anpasst, die Sie im Popup-Menü auswählen können.

Rastern ist dann wichtig, wenn Sie die Dateien mit der Einstellung Bühne importieren, und die Filmfarbtiefe geringer ist als die des importierten Bitmaps. Farben, die im Film (beziehungsweise in der ausgewählten Palette) nicht vorhanden sind, werden durch Streuung benachbarter Farben simuliert.

Die Option Einstellungen für restliche Grafiken erhalten ist praktisch für den Import mehrerer Bilddateien. Director übernimmt die gewählten Einstellungen für den gesamten Importvorgang und fragt nicht noch einmal nach.

Wenn Sie eine TIFF-Datei mit einem zusätzlichen Alphakanal importieren und eine Farbtiefe von 32 Bit für das Bild beibehalten, wird der Alphakanal als variabel über das Bild verteilte Abstufung der Deckkraft verwendet.

Für den Import von Photoshop-Dateien steht übrigens eine interessante Erweiterung zur Verfügung: Das Xtra (Director-Plug-in) Photocaster importiert die einzelnen Ebenen eines Photoshop-Bildes automatisch als Darsteller. Er ist sogar in der Lage, die Registrierpunkte so zu setzen, dass die relative Positionierung erhalten bleibt. Näheres über dieses interessante Produkt erfahren Sie beim Hersteller unter www.medialab.com.

Sound importieren

Auch Audiodateien werden recht häufig in Director importiert und verwendet. Vieles, was die Verwendung von Sound betrifft, wird durch Lingo-Anweisungen gesteuert. An dieser Stelle wird nur kurz auf diejenigen Aspekte eingegangen, die sich überhaupt im Drehbuch einstellen lassen. Director unterstützt alle gängigen Sound-Dateiformate. Beim Importieren von Sound werden keine besonderen Fragen gestellt – die Audiodateien werden sofort als neue Sounddarsteller importiert.

Da es innerhalb von Director keine Möglichkeit gibt, diesen Darstellertyp zu bearbeiten, erscheint bei Doppelklick auf einen Sounddarsteller nur die spezifische Palette des Eigenschafteninspektors. Wenn Sie dort Schleife ankreuzen, wird der Sound immer wieder von neuem abgespielt, so lange der Abspielkopf im Drehbuch im Bereich seines Sprites bleibt. Unter Dauer wird die Abspieldauer des Sounds in Sekunden angegeben. Sample-Rate, Auflösung (Sampling-Tiefe) und Kanäle wurden bereits weiter oben behandelt.

Im Drehbuch wird Sound folgendermaßen verwendet: Zunächst müssen Sie die Effekt-Kanäle des Drehbuchs anzeigen, dafür müssen Sie auf den Knopf rechts neben den Frame-Nummern drücken. Es erscheinen unter anderem die beiden Soundkanäle des Drehbuchs. Um einen Sound im Drehbuch zu platzieren, brauchen Sie ihn nur mit der Maus aus der Besetzung in einen der beiden Soundkanäle zu ziehen. Es erscheint entsprechend ein Sound-Sprite. Das erste und das letzte Frame regeln Abspielbeginn und -ende des Sounds. Ist der Sound selbst länger als die hier gewählte Dauer, dann endet er abrupt; ist er dagegen kürzer, dann wird er, ungeachtet der überragenden Sprite-Dauer, nicht mehr abgespielt – es sei denn, die Schleife ist eingestellt.

Der Import und die Verwendung von Video erfolgen ähnlich wie bei Sound. Der wichtigste Unterschied besteht darin, dass Videosprites in den gewöhnlichen Sprite-Kanälen des Drehbuchs angelegt werden.

3-D-Darsteller importieren

Interaktive 3-D-Darsteller müssen im Shockwave-3-D-Format (Dateiendung .w3d) importiert werden. Gängige 3-D-Software wie die weiter oben vorgestellten Programme 3d s max und Cinema 4D enthalten Exportfunktionen für dieses Format. Wenn Sie einen solchen Darsteller importiert haben, können Sie per Doppelklick in der Besetzung das Shockwave-3-D-Fenster öffnen. Hier lassen sich die Anfangsansicht und zahlreiche weitere Aspekte der importierten 3-D-Welt genau einstellen.

Die interaktive Steuerung von 3-D-Sprites, deren Darsteller wie gewöhnlich auf die Bühne gezogen werden, besteht aus sehr komplexen Lingo-Befehlen, deren Erläuterung den Rahmen dieses Abschnitts sprengen würden. Sie können allerdings eine Reihe gut dokumentierter Verhalten aus der Bibliothek auf Ihre 3-D-Sprites ziehen, um sie mit der gewünschten Funktionalität auszustatten.

Filmschleifen-Darsteller

Eine beliebige Animationsinformation aus dem Drehbuch kann wiederum als neuer Darsteller abgelegt werden. Dazu wird die Animation auf der Bühne fertig erstellt. Wichtig ist, dass alles Erforderliche bereits voreingestellt wird. Besonders relevant ist die Einstellung der Farbeffekte der Sprites, denn nachträglich lässt sich nichts mehr ändern.

Sie können die erstellte Animation einfach im Drehbuch auswählen und in die Besetzung ziehen. Dadurch entsteht eine Filmschleife, die die ursprüngliche Animation enthält. Diese Filmschleife kann wiederum auf die Bühne gezogen und als Sprite verwendet werden. Filmschleifen können ihrerseits Filmschleifen-Sprites enthalten und auf diese Weise beliebig tief ineinander verschachtelt werden.


Galileo Computing

10.5.3 Lingo-Grundlagen  downtop

Der wichtigste Bestandteil der umfangreichen Anwendung Director ist die mächtige eingebaute Programmiersprache Lingo. In diesem Unterabschnitt werden die wichtigsten Funktionen der Sprache vorgestellt. Seit der Director-Version 7 gibt es eine umfangreiche Skript-Bibliothek, aus der Sie eine Reihe gut dokumentierter Lingo-Skripte per Drag and Drop zuweisen können.

Wie Sie in diesem Unterabschnitt feststellen werden, unterscheidet sich Lingo zum Teil erheblich von den anderen Programmiersprachen, die bisher in diesem Buch vorgestellt wurden. Die Sprache stammt nicht von C ab, sondern aus einer völlig anderen Tradition: Die Vorbilder für Lingo sind AppleScript (eine Sprache zur Steuerung von Mac  OS-Anwendungen) und HyperCard, das von Apple entwickelte Vorbild aller Autorensysteme. Die Unterschiede bemerken Sie unter anderem an syntaktischen Äußerlichkeiten, beispielsweise enden Anweisungen nicht mit einem Semikolon.

Ein erstes Beispiel

Dieses kurze Beispiel zeigt, wie Sie einen Film am Ende automatisch anhalten und durch Klick auf einen Button neu starten können.

1. Erstellen Sie eine beliebige Animation.
       
2. Doppelklicken Sie im letzten Frame der Animation in den Skriptkanal, der sich unmittelbar über den Frame-Nummern befindet. Es öffnet sich das Skriptfenster, das Sie übrigens auch über Fenster • Skript oder (STRG) + (0) öffnen können. Hier steht bereits der folgende vorgefertigte Code:
       
on exitFrame me
 
end
    Der Cursor befindet sich zwischen diesen beiden Zeilen.
       
3. Tragen Sie an der Stelle, an der sich der Cursor befindet, die folgende Codezeile ein:
       
go to the frame
    Das ganze Skript sieht nun folgendermaßen aus:
       
on exitFrame me
  go to the frame
end
4. Erstellen Sie im letzten Frame des Films ein Button-Sprite. Es kann sich dabei um eine Taste aus der Werkzeugpalette handeln, aber auch um ein beliebiges Bitmap oder Ähnliches.
       
5. Markieren Sie dieses Sprite und wechseln Sie auf die Inspektor-Registerkarte Verhalten oder klicken Sie auf das Zahnrad-Symbol in der Sprite-Überlagerung.
       
6. Klicken Sie im Verhaltensinspektor auf das Popup + und wählen Sie Neues Verhalten. In einem kleinen Dialog werden Sie gebeten, einen Namen für das Verhalten einzugeben – tippen Sie den Namen »nochmal« ein.
       
7. Klicken Sie anschließend auf den Skript-Button im Verhaltensinspektor. Es erscheint wieder das Skriptfenster zur Bearbeitung des neuen Skripts. Geben Sie hier Folgendes ein:
       
on mouseUp
    go to frame 1
end

Nun können Sie den Film starten – in der normalen Arbeitsumgebung von Director werden Lingo-Skripte einfach ausgeführt.

In diesem Beispiel haben Sie zwei verschiedene Arten von Lingo-Skripten erstellt: Das erste ist ein Frame-Skript, das sich im Skriptkanal des Drehbuchs befindet und automatisch ausgeführt wird, wenn ein Ereignis im Zusammenhang mit diesem Frame stattfindet (siehe unten). Das andere ist ein Sprite-Skript, das einem bestimmten Sprite im Drehbuch zugewiesen wird – es wird meist ausgeführt, wenn der Benutzer eine bestimmte Aktion wie einen Mausklick oder Tastendruck ausführt.

Navigationsbefehle

Lingo-Skripte bestehen grundsätzlich aus Ereignisprozeduren, die im Englischen als Event-Handler bezeichnet werden. Formal sieht eine Lingo-Ereignisprozedur so aus:

on EREIGNISNAME
  -- irgendwelche Befehle
end

Die allgemeine Funktionsweise der Ereignisbehandlung haben Sie bereits in Kapitel 6, Konzepte der Programmierung, am Beispiel der Java-GUI-Programmierung kennen gelernt. Es lassen sich zwei Grundtypen von Ereignissen voneinander unterscheiden:

gp  Film-Ereignisse treten automatisch im Verlauf des Films auf. Beispiele: startMovie wird ausgeführt, wenn der Film gerade startet; exitFrame wird aufgerufen, wenn der Abspielkopf das aktuelle Frame gerade verlässt.
gp  Benutzer-Ereignisse werden interaktiv vom Benutzer erzeugt. Zum Beispiel wird mouseUp beim Loslassen der Maustaste aufgerufen, während keyDown bei einem Tastendruck ausgeführt wird.

Wird eine Ereignisprozedur durch das entsprechende Ereignis gestartet, so werden nacheinander alle Befehle bis zum end ausgeführt.

Das erste Skript im obigen Beispiel reagiert auf das Ereignis exitFrame: Dies ist der Impuls des Abspielkopfs, das aktuelle Frame zu verlassen und das nächste anzusteuern.

Die go to-Befehle

Die Anweisung go to (wahlweise einfach go) springt zum angegebenen Frame. Die Eigenschaft the frame ist ein Verweis auf das aktuelle Frame selbst. Mittels go to the frame wird der Film also dauerhaft im aktuellen Frame festgehalten. Auf diese Weise wird in Director ein Standbild realisiert, was in vielen Präsentationen sehr wichtig ist.

Das zweite Skript im Beispiel reagiert auf das Benutzer-Ereignis mouseUp, also auf das Loslassen der Maustaste. Da das Skript einem bestimmten Sprite zugeordnet ist, reagiert dieses Skript nur dann, wenn die Maustaste vorher innerhalb des Skripts gedrückt und auch dort wieder losgelassen wurde.

Die Anweisung go to frame 1 in diesem Skript dient dazu, zum Frame Nummer 1, also dem ersten Frame des Films, zu springen. Allgemein bedeutet go to frame NUMMER, dass der Film zu dem Frame mit der angegebenen Nummer springen soll.

Erweitertes Navigationsbeispiel

Im ersten Frame eines Films, einem Standbild, soll ein kleines Menü mit zwei Auswahlmöglichkeiten (Buttons) angezeigt werden. Bei Klick auf diese Buttons springt der Film zu verschiedenen Stellen, spielt jeweils eine kleine Animation ab und bewegt sich dann wieder automatisch zum Hauptmenü.

Das erste Frame erhält zu diesem Zweck das folgende Frame-Skript:

on exitFrame
  go to the frame
end

Die beiden Buttons erhalten folgende Skripte, wenn man davon ausgeht, dass die beiden Animationen bei Frame 10 beziehungsweise 40 beginnen:

on mouseUp
  go to frame 1 end

beziehungsweise

on mouseUp
  go to frame 4 end

Am Ende der beiden Animationssequenzen, also in deren jeweiligem letzten Frame, wird das folgende Frame-Skript hinzugefügt:

on exitFrame
  go to frame 1
end

Es dient dazu, wieder zum Hauptmenü zurückzugelangen.

Skript-Darsteller mehrfach einsetzen

Sie können dafür übrigens zweimal denselben Skript-Darsteller benutzen – Sie müssen ihn beim zweiten Mal einfach nur aus der Besetzung in das Frame im Skriptkanal hineinziehen. Solche »recycelten« Skript-Darsteller leiden allerdings unter demselben Problem wie alle anderen Darsteller: Werden sie geändert, so ändern sie sich überall, wo sie eingesetzt werden. Bevor Sie also einfach ein Skript ändern, stellen Sie sicher, dass dieses Skript nicht auch noch an anderer Stelle verwendet wird, an der es vielleicht nicht geändert werden soll. In solch einem Fall müssen Sie erst den Skript-Darsteller kopieren und neu zuordnen.

Eine Verbesserung der Übersichtlichkeit ergibt sich, wenn Sie nicht mit Frame-Nummern, sondern mit Frame-Markierungen arbeiten. Eine Frame-Markierung ist eine Bezeichnung, die einem Frame in der Leiste über den Frame-Nummern im Drehbuch zugewiesen wird.

Ganz links oben im Drehbuch befindet sich übrigens ein Popup-Menü, in dem alle Markierungen aufgelistet sind, sowie Buttons, um zur vorherigen beziehungsweise zur nächsten Markierung zu blättern. Sie können eine Markierung verschieben, indem Sie die Maus genau darauf positionieren (andernfalls entsteht eine neue Markierung) und ziehen. Eine Markierung lässt sich umbenennen, indem Sie auf den Namen klicken und einen neuen eintippen. Entfernt wird ein Label, indem Sie es nach oben wegziehen.

Wenn Sie sich per Lingo auf eine Markierung beziehen, muss ihr Name in Anführungszeichen stehen.

Bezeichnen Sie im aktuellen Beispiel das Menü mit der Markierung menue, den Beginn der ersten Animation (Frame 10) mit ani1 und den Beginn der zweiten mit ani2.

Die geänderten Skripte lauten folgendermaßen:

-- Erster Animationsbutton:
on mouseUp
  go to frame "ani1"
end
 
-- Zweiter Animationsbutton:
on mouseUp
  go to frame "ani2"
end
 
-- Frame-Skript am Ende der Animationssequenzen:
on exitFrame
  go to frame "menue"
end

Relative Sprungziele

Wenn Sie Markierungen verwenden, können Sie übrigens alternativ relative Sprungziele angeben:

gp  go loop springt zum unmittelbar vorherigen Label. Wenn das aktuelle Frame selbst ein Label besitzt, wirkt es natürlich wie go to the frame.
gp  go next springt zum nächsten Label.
gp  go previous springt zu demjenigen Label, das sich vor dem unmittelbar vorhergehenden befindet.

Diese Befehle sind für »lineares Blättern« geeignet. Wenn alle Sektionen, Seiten oder sonstige Ordnungseinheiten mit je einem Label versehen sind, kann zum Beispiel ein Weiter-Button fest mit go next und der Zurück-Button mit go previous versehen werden.

Andere Filme laden

Es gibt neben dem Sprung zu einem anderen Frame zudem noch die Möglichkeit, zu einem anderen Director-Film zu springen. Dazu wird die Anweisung go to movie "Filmname" verwendet. Die Windows-Dateiendung .dir sollten Sie an dieser Stelle weglassen. Beim späteren Veröffentlichen des Films kann es nämlich sein, dass die aufgerufene Datei eine andere Endung erhält, weil sie beispielsweise als geschützter Director-Film oder als Shockwave-Film für das Web abgespeichert wird – wenn Sie keine Endung angeben, ist sie Director egal.

Variablen in Lingo

In Lingo wird eine Variable durch die erste Wertzuweisung (Initialisierung) erzeugt. In alten Versionen musste auf jeden Fall der Befehl set dafür verwendet werden, der noch heute funktioniert:

set a = 3

Seit Director 7 können Sie dagegen einfach Folgendes schreiben:

a = 3

Variablen-Geltungsbereiche

Genau wie die meisten Programmiersprachen unterscheidet auch Lingo zwischen lokalen und globalen Variablen. Eine lokale Variable gilt nur innerhalb einer Ereignisprozedur, also zwischen on ... und end. Eine globale Variable gilt dagegen im gesamten Film.

Automatisch sind alle Variablen erst einmal lokal. Um eine Variable zur globalen zu machen, müssen Sie sie mit dem Schlüsselwort global als solche qualifizieren:

global VARIABLE

oder

global VARIABLE1, VARIABLE2, ...

Diese global-Qualifizierung muss in jeder Ereignisprozedur beziehungsweise jedem Skript wiederholt werden, in dem die globale Variable verwendet werden soll. Prinzipiell gibt es dafür zwei Möglichkeiten:

1. Erwähnung innerhalb einer Ereignisprozedur, sodass die globale Variable nur innerhalb dieser Prozedur gilt:
       
on prozedur1
  global VARIABLE
  -- Anweisungen; hier ist VARIABLE global.
end
 
on prozedur2
  -- Anweisungen; VARIABLE wäre hier lokal.
end
2. Erwähnung am Anfang eines Skripts, außerhalb aller Ereignisprozeduren:
       
global VARIABLE
 
on prozedur1
  -- Anweisungen; VARIABLE ist hier global.
end
 
on prozedur2
  -- Anweisungen; VARIABLE ist auch hier global.
end

Variablen-Beispiel

Konkretes Beispiel: Eine Animation soll genau dreimal abgespielt werden, anschließend soll ein anderer Teil des Films folgen. Dies funktioniert folgendermaßen:

1. Erstellen Sie einen neuen Film und darin am Anfang eine beliebige Animation. Platzieren Sie unmittelbar hinter der Animation ein Frame mit einer »Ende«-Botschaft.
       
2. Versehen Sie das allererste Frame mit der Markierung anfang.
       
3. Öffnen Sie, ohne irgendetwas in Drehbuch oder Besetzung zu markieren, das Skriptfenster ((STRG) + (0)). Durch dieses Vorgehen entsteht ein Film-Skript, also ein Lingo-Skript, das Anweisungen oder Prozeduren enthält, die den gesamten Film betreffen. Notieren Sie hier das folgende Skript:
       
global gDurchlauf
 
on startMovie
  gDurchlauf =  end
4. Schreiben Sie nun im letzten Frame der Animationssequenz das folgende Frame-Skript:
       
global gDurchlauf
 
on exitFrame
  gDurchlauf = gDurchlauf + 1
  if gDurchlauf < 3 then go to frame "anfang"
end

Die vordefinierte Ereignisprozedur on startMovie wird ausgeführt, wenn der Film startet, und zwar noch bevor das erste Frame abgespielt wird. Beachten Sie, dass Lingo-Manipulationen von Sprites oder anderen Drehbuch-Bestandteilen hier noch nicht stattfinden dürfen, da es zu diesem Zeitpunkt noch gar keine Bühne gibt.

Es ist üblich, die Namen globaler Variablen mit einem kleinen g zu beginnen – auf diese Weise sehen Sie auf den ersten Blick, dass sie global sind. In diesem Zusammenhang sollte darauf hingewiesen werden, dass Lingo weder bei eingebauten noch bei selbst gewählten Bezeichnern auf Groß- und Kleinschreibung achtet. Dennoch sollten Sie sich an die Konventionen halten, damit Ihre Skripte übersichtlich bleiben und auch von anderen problemlos gelesen werden können.

Besonderheiten von Lingo

Beachten Sie weitere Besonderheiten der Programmiersprache Lingo, die zum Teil im obigen Beispiel deutlich geworden sind:

gp  Es gibt keine Kurzfassungen für Wertmanipulationen von Variablen. Sie müssen also gDurchlauf = gDurchlauf + 1 schreiben; so etwas wie gDurchlauf++ kennt Lingo nicht.
gp  Die Kontrollstruktur if wird etwas anders formuliert als in den Sprachen aus der C-Tradition, die bisher in diesem Buch behandelt wurden. Wenn nur eine Anweisung von einer if-Bedingung abhängt, können Sie die Abfrage folgendermaßen in eine Zeile schreiben:
if BEDINGUNG then BEFEHL
    Beziehen sich dagegen mehrere Anweisungen auf ein einzelnes if, funktioniert es folgendermaßen:
       
if BEDINGUNG then
  -- Anweisung(en)
end if
gp  Im Zusammenhang mit if-Abfragen ist außerdem wichtig, dass die Vergleichsoperationen in Lingo anders lauten als in C-ähnlichen Sprachen: Der Gleichheitsoperator ist ein einfaches =; die Unterscheidung zwischen diesem Vergleich und der Wertzuweisung ergibt sich aus dem Kontext. Für die Ungleichheit wird <> notiert. Die logischen Verknüpfungen lauten and und or.
gp  Auch Schleifen werden in Lingo etwas eigenwillig geschrieben. Eine determinierte Schleife, in der eine Variable nacheinander eine Reihe fester Werte annimmt, wird folgendermaßen formuliert:
repeat with i = 1 to 1   -- i wird nacheinander 1, 2, 
..., 1 end repeat   
    Berücksichtigen Sie, dass Sie down to statt to schreiben müssen, wenn der Endwert kleiner als der Startwert ist:
       
repeat with i = 10 down to 1
  -- i wird nacheinander 10, 9, ..., 1
end repeat
    Eine nicht determinierte Schleife, die vor jedem Durchgang erneut eine Bedingung überprüft, lautet in der Lingo-Syntax so:
       
repeat while AUSDRUCK
  -- wird ausgeführt, solange AUSDRUCK true ist
end repeat
    Falls Sie Sprite- oder sonstige Filmeigenschaften innerhalb einer Schleife ändern, müssen Sie explizit dafür sorgen, dass die Bühne aktualisiert wird – während der Ausführung von Lingo-Skripten geschieht dies nämlich normalerweise nicht. Geben Sie dazu an der gewünschten Stelle den folgenden Befehl ein:
       
updateStage

Text- und Felddarsteller per Lingo ansprechen

Der Inhalt von Text- und Felddarstellern kann mittels Lingo gelesen und ausgewertet, aber auch manipuliert werden. Betrachten Sie als erstes kleines Beispiel den folgenden Fall: Im ersten Frame soll ein Benutzer seinen Namen eingeben und einen OK-Button drücken. Daraufhin springt der Film zu einem anderen Frame, in dem »Hallo, <Name>!« ausgegeben wird.

Legen Sie dazu im ersten Frame eines Films einen Felddarsteller namens eingabe als Sprite auf die Bühne. Mit beliebigem Dummy-Text, den Sie später wieder entfernen, können Sie die Schriftart, -größe und -farbe einstellen. Setzen Sie dieses Sprite in den Sprite-Eigenschaften auf »bearbeitbar« (Button a|b in der obersten Reihe). Erstellen Sie in diesem Frame außerdem einen OK-Button und weisen Sie dem Frame ein Standbild-Skript zu.

Das Frame, in dem die Ausgabe erfolgen soll, erhält die Markierung gruss. Ziehen Sie hier ein weiteres Textfeld mit dem Darstellernamen ausgabe auf die Bühne. Außerdem benötigt dieses Frame das folgende Frame-Skript:

on exitFrame
  benutzer = the text of member "eingabe"
  put "Hallo" && benutzer & "!" into member "ausgabe"
end

Zum Schluss bekommt der OK-Button noch die Anweisung, zu dem Frame gruss zu springen:

on mouseUp
  go to frame "gruss"
end

Die Eigenschaft the text of member "Darstellername" liefert den Textinhalt des Darstellers mit dem angegebenen Namen zurück. Der Bezug könnte genauso gut auf die Darstellernummer gerichtet sein, zum Beispiel the text of member 4. Dies ist natürlich nicht besonders ratsam, weil Darsteller später umsortiert werden können, außerdem ist es unübersichtlich. In klassischem Lingo beginnen die Namen von Eigenschaften immer mit einem vorangestellten the. Seit Version 7 ist alternativ auch die Punktschreibweise möglich, die aus moderneren Programmiersprachen entlehnt wurde. Sie können also auch Folgendes schreiben:

benutzer = member ("eingabe").text

Beachten Sie, dass die Klammern in diesem Fall nicht mehr optional, sondern verbindlich sind.

Darstellern Textinhalte zuweisen

Die Anweisung put Ausdruck into member "Darstellername" trägt den Wert des angegebenen Ausdrucks als Text in den entsprechenden Darsteller ein. Natürlich muss es sich um einen Darsteller handeln, der Text enthalten kann, also etwa einen Text-, Feld- oder Tastendarsteller.

Der Befehl put kann auch als Alternative verwendet werden, um den Wert einer Variablen zu manipulieren (wie der Zuweisungsoperator =):

put AUSDRUCK into VARIABLE

Im Übrigen kann put Ihnen das Leben erleichtern, wenn Sie nach Fehlern in Lingo-Skripten suchen: put Ausdruck ohne Bezug auf ein Ausgabefeld dient dazu, eine Ausgabe ins Nachrichtenfenster vorzunehmen. Dieses Fenster wird mittels Fenster • Nachricht oder (STRG) + (M) geöffnet und kann verwendet werden, um einzelne Lingo-Befehle einzutippen und so zu testen. Außerdem dient es der Ausgabe solcher bezugslosen put-Befehle.

Strings verketten

Die Operatoren & beziehungsweise && verketten beliebige Ausdrücke zu Zeichenketten. && fügt außerdem ein Leerzeichen hinzu.

put AUSDRUCK after member "Darsteller"

fügt den Wert des Ausdrucks ans Ende des vorhandenen Textes an, während

put AUSDRUCK before member "Darsteller"

den Wert des Ausdrucks vor dem Text des Darstellers einfügt.

Die Konstante RETURN steht übrigens für einen Zeilenumbruch, der hinzugefügt werden soll. Die Großschreibung einer solchen symbolischen Konstante ist eine Konvention und natürlich eigentlich nicht nötig.

Sprite-Eigenschaften

In diesem Unterabschnitt werden einige wichtige Sprite-Eigenschaften angesprochen, die Sie dynamisch per Lingo ändern können.

Der Rollover-Effekt

Eine der wichtigsten Eigenschaften ist the member of sprite – sie wird verwendet, um den Darsteller auszutauschen, der auf der Position eines Sprites angezeigt wird. Besonders häufig wird sie eingesetzt, um einen Rollover-Effekt zu erzielen, also das dynamische Aufleuchten von Schaltflächen, die vom Mauszeiger berührt werden.

Angenommen, in Sprite 3 befindet sich im Grundzustand ein Darsteller namens normalbutton. Wenn der Mauszeiger dieses Sprite berührt, soll er durch den Darsteller leuchtbutton ersetzt werden. Zu diesem Zweck können Sie dem Sprite das folgende Skript zuweisen:

on mouseEnter
  set the member of sprite 3 = "leuchtbutton"
end
 
on mouseLeave
  set the member of sprite 3 = "normalbutton"
end

Die beiden neuen Ereignisprozeduren mouseEnter beziehungsweise mouseLeave werden ausgeführt, wenn das Sprite berührt beziehungsweise wieder verlassen wird. Beachten Sie, dass die Registrierpunkte und Größen der Darsteller beim Rollover identisch sein sollten.

Sprite- und Mausposition

Im nächsten Beispiel soll ein Sprite bei jedem Mausklick an der Position des Mauszeigers auftauchen. Zu diesem Zweck benötigen Sie die folgenden Sprite-Eigenschaften: the locH of sprite (location horizontal) bezeichnet die X-Position des Sprites auf der Bühne, genauer gesagt den Abstand des Registrierpunkts zum linken Bühnenrand. the locV of sprite (location vertical) ist dagegen die Y-Position des Sprites. Diese Eigenschaften können ermittelt und verändert werden:

x = the locH of sprite 9

speichert die aktuelle X-Position von Sprite 9 in der Variablen x.

set the locV of sprite 7 = 100

setzt dagegen die Y-Position von Sprite 7 auf 100.

Darüber hinaus werden die beiden folgenden globalen Eigenschaften (Filmeigenschaften) verwendet: the mouseH ist die aktuelle X-Position der Maus; the mouseV bezeichnet ihre Y-Position.

Da das Skript auf jeden Mausklick reagieren soll, müssen Sie die Ereignisprozedur (on mouseUp) an einer ungewöhnlichen Stelle platzieren, nämlich im Frame-Skript. Eine dort platzierte mouseUp-Prozedur reagiert auf Mausklicks auf der gesamten Bühne.

Wenn es sich bei dem fraglichen Sprite um Sprite Nummer 3 handelt, lautet das entsprechende Frame-Skript so:

on mouseUp
  set the locH of sprite 3 = the mouseH
  set the locV of sprite 3 = the mouseV
end
 
on exitFrame me
  go to the frame
end

Soll das Sprite dagegen nicht nur bei einem Klick auf die Mauskoordinaten gesetzt, sondern ständig zusammen mit dem Mauszeiger verschoben werden, dann sieht die Lösung so aus:

on exitFrame me
  set the locH of sprite 3 = the mouseH
  set the locV of sprite 3 = the mouseV
  go to the frame
end

Das einzige Problem dabei ist, dass der normale Mauszeiger stört, da sich das Sprite nun selbst wie ein Cursor verhält. Deshalb folgt als Nächstes eine kurze Beschreibung, wie Sie den Cursor ausblenden oder modifizieren können.

Mauszeiger austauschen

Wenn Sie im vorigen Beispiel einfach den Standard-Mauszeiger loswerden möchten, können Sie in der Ereignisprozedur startMovie eines Film-Skripts folgende Anweisung eintragen:

cursor 200

Der Befehl

cursor NUMMER

setzt den Mauszeiger auf die durch NUMMER bezeichnete interne Cursor-Ressource. Die wichtigsten sind folgende:

gp  -1: Normaler Auswahlpfeil
gp  0: Automatisch; das Betriebssystem entscheidet selbst (Standard)
gp  1: Einfügemarke (wie in Textfeldern üblich)
gp  2: Fadenkreuz
gp  3: Balkenkreuz
gp  4: Warte-Uhr (Mac: Armbanduhr, Windows: Sanduhr)
gp  200: Cursor ausblenden (siehe obiges Beispiel)
gp  280: Hyperlink-Finger wie im Webbrowser

Die Eigenschaft the cursor of sprite stellt den Cursor nicht allgemein um, sondern nur dann, wenn sich der Mauszeiger über dem angegebenen Sprite befindet. Das folgende Beispiel schaltet den Hyperlink-Finger ein, wenn sich die Maus über Sprite 4 befindet:

set the cursor of sprite 4 = 280

Darsteller als Cursor

Statt der eingebauten Ressourcen können Sie auch eigene Darsteller als Cursor verwenden. Zu diesem Zweck gibt es eine spezielle Schreibweise von cursor beziehungsweise the cursor of sprite:

cursor [7]

verwendet den Darsteller Nummer 7 als Cursor.

set the cursor of sprite 9 = [20]

aktiviert dagegen den Darsteller 20 als Cursor, wenn sich die Maus über Sprite 9 befindet.

Der entsprechende Darsteller muss ein 1-Bit-Bitmap-Darsteller sein und darf maximal 16 x 16 Pixel groß sein (ansonsten werden nur die oberen linken 16 x 16 Pixel verwendet). Der Registrierpunkt ist der sensitive Punkt des Cursors.

Leider ist ein Zugriff über den Darstellernamen nicht möglich, es muss stets die Nummer in der Besetzung verwendet werden. Sie können allerdings mit Hilfe der Eigenschaft

the number of member "Darstellername"

die Nummer des Darstellers ermitteln und als Argument für cursor verwenden. Angenommen, Sie haben den Darsteller 15 mit dem Namen hand als Cursor-Darsteller auserkoren. Dann können Sie statt

cursor [15]

auch Folgendes schreiben:

cursor [the number of member "hand"]

Übersichtlicher ist diese Formulierung mit einer Hilfsvariablen:

cursornum = the number of member "hand"
cursor [cursornum]

Cursor-Masken

Das Problem bei solchen selbst definierten Cursor-Darstellern ist, dass ein solcher Cursor nicht einfach schwarz bleibt, sondern an seinen schwarzen Stellen jeweils die Komplementärfarbe des Untergrunds annimmt, während die weißen Stellen ohnehin transparent gesetzt werden. Um dies zu ändern, müssen Sie zusätzlich einen Cursor-Masken-Darsteller anfertigen. Dieser ist ebenfalls ein 16 x 16 Pixel großes 1-Bit-Bitmap und wird folgendermaßen auf den eigentlichen Cursor angewendet:

gp  Überall, wo der Maskencursor schwarz ist, werden die Pixel des eigentlichen Cursors deckend gezeichnet – je nach ihrer Farbe schwarz oder weiß.
gp  Überall, wo die Maske weiß bleibt, zeigen die Pixel des eigentlichen Cursors wieder ihr Standardverhalten (siehe oben).

Angenommen, Sie möchten Darsteller 36 als Cursor und Darsteller 37 als seine Maske verwenden:

cursor [36, 37]

Möchten Sie dagegen Darsteller 45 als Cursor und 47 als Maske verwenden, wenn Sprite 8 berührt wird, dann lautet der erforderliche Code so:

set the cursor of sprite 8 = [45, 47]

Wenn Sie einen Cursor benötigen, der nur schwarze und transparente, aber keine weißen Pixel enthält, können Sie einfach denselben Darsteller als Cursor und als Maske verwenden. Zum Beispiel:

cursor [3, 3]

Farbige, animierte Cursor

Seit Director 7 können Sie auch farbige, animierte Cursor einrichten. Dabei handelt es sich allerdings um einen separaten Darstellertyp und nicht um Bitmaps. Ein solcher Spezialcursor wird folgendermaßen erzeugt:

1. Erstellen Sie eine Sequenz von Bitmap-Darstellern, aus denen die einzelnen Frames der Cursor-Animation entstehen sollen. Die Zielgröße beträgt wahlweise 16 x 16 oder 32 x 32 Pixel.
       
2. Rechnen Sie diese Darsteller mittels Modifizieren • Bitmap transformieren auf 8 Bit Farbtiefe herunter.
       
3. Wählen Sie Einfügen • Mediaelement • Cursor. Es öffnet sich der Cursoreigenschaften-Editor.
       
4. Rechts oben können Sie sich durch alle in Frage kommenden Darsteller blättern und diese mittels << Hinzufügen zum Cursor zusammenstellen. Links oben können Sie den Cursor mit Vorschau und Stop testen.
       
5. Unten können Sie einige Feineinstellungen vornehmen: Das Intervall bezeichnet die Dauer eines Cursor-Frames in Millisekunden. Die Hotspot-Position bestimmt, wo sich der sensitive Punkt des Mauszeigers befinden soll; sie wird von links oben (0, 0) aus gerechnet. Empfehlenswert ist darüber hinaus die Einstellung Auto-Maske: Nichtweiße Pixel werden automatisch deckend gezeichnet, weiße transparent.
       

Dieser Dialog ergibt nach einem Klick auf OK einen neuen Cursor-Darsteller, den Sie wie gehabt mittels cursor [Darstellernummer] beziehungsweise set the cursor of sprite Kanalnummer = [Darstellernummer] aktivieren können.

Systematik der Lingo-Skripte

In den bisherigen Beispielen wurden die einzelnen Arten von Lingo-Skripten mehr oder weniger intuitiv verwendet. An dieser Stelle finden Sie dagegen eine kurze systematische Übersicht über die einzelnen Skript-Typen:

Skript-Arten

Intern unterscheidet Director zwischen drei verschiedenen wichtigen Arten von Skripten: Verhaltens-Skript (Behavior Script), die Sammelbezeichnung für Frame-Skript und Sprite-Skript; Darsteller-Skript (Member Script) und Film-Skript (Movie Script). Insgesamt gibt es also vier verschiedene Arten von Skripts, die man unterscheiden muss:

1. Sprite-Skript. Dieses Skript wird im Drehbuch unmittelbar mit einem bestimmten Sprite verknüpft. In der Regel verarbeitet ein Sprite-Skript Ereignisse, die unmittelbar dieses Sprite selbst betreffen. Normalerweise handelt es sich um eine Benutzeraktion in Bezug auf dieses Sprite: Maustaste drücken (on mouseDown), Maustaste loslassen (on mouseUp), Mauszeiger hineinrollen (on mouseEnter) und Mauszeiger herausfahren (on mouseLeave).
       
    Wichtige Nicht-Benutzer-Ereignisse, die in Sprite-Skripten verarbeitet werden können, betreffen dagegen die Lebensspanne eines Sprites im Drehbuch: on beginSprite wird ausgeführt, wenn das erste Frame des Sprites abgespielt wird; on endSprite wird dagegen nach dem letzten Frame des Sprites ausgeführt. Solange eine Schleife innerhalb der Frames des Sprite-Bereichs läuft, wird dies übrigens nicht als Ende und Neubeginn des Sprites gewertet.
       
2. Frame-Skript. Dieses Skript steht separat im Drehbuch, nämlich im Skriptkanal. Es verarbeitet vornehmlich Ereignisse, die das gesamte Frame betreffen, also vor allem Film-Ereignisse, die automatisch auftreten: Der Abspielkopf hat gerade dieses Frame erreicht (on enterFrame) oder schickt sich an, das Frame wieder zu verlassen (on exitFrame). Letzteres ist das häufigste (und standardmäßig eingetragene) Ereignis für Frame-Skripte. Ein weiteres abfragbares Ereignis: Der Film hat gerade nichts Besseres zu tun, befindet sich also im Leerlauf (on idle).
       
    Daneben werden (seltener) auch Benutzer-Ereignisse in Frame-Skripten verarbeitet – Mausereignisse (nur mouseDown und mouseUp) betreffen dann zum Beispiel einen Klick an einer beliebigen Stelle auf der Bühne. Die Rollover-Ereignisse (on mouseEnter und on mouseLeave) werden hier verständlicherweise nicht verarbeitet, da ein Frame-Skript keine Information darüber erhält, ob ein Sprite vom Mauszeiger berührt wird.
       
    Sinnvoller (und häufiger anzutreffen, da es keinen anderen passenden Ort dafür gibt) sind die Tastatur-Ereignisse: on keyDown wird ausgeführt, wenn eine Taste betätigt wurde, on keyUp dagegen beim Loslassen einer Taste. Welche Taste gedrückt wird beziehungsweise wurde, steht in der globalen Eigenschaft the key.
       
3. Darsteller-Skript. Ein Darsteller-Skript wird unmittelbar einem Darsteller zugeordnet. Durch Anklicken eines Darstellers und des Skript-Buttons oben in der Besetzung (oder in einem der verschiedenen Darsteller-Bearbeitungsfenster) wird ein neues Skript hinzugefügt, das automatisch die folgenden vorgefertigten Skriptzeilen enthält:
       
on mouseUp
 
end
    Daran zeigt sich bereits, dass ein Darsteller-Skript eine ähnliche Aufgabe hat wie ein Sprite-Skript: Es soll Ereignisse verarbeiten, die unmittelbar den Darsteller selbst betreffen, also in der Regel Benutzer-Ereignisse. Ein solches Skript betrifft konkret jedes Sprite dieses Darstellers. Der einzige Hinweis auf die Anwesenheit eines Darsteller-Skripts ist das kleine Skriptsymbol bei dem jeweiligen Darsteller in der Setzkasten-Ansicht der Besetzung. Sie sollten diese Skriptsorte nur dann einsetzen, wenn Sie sich sicher sind, dass der entsprechende Darsteller immer und überall mit denselben Lingo-Befehlen belegt werden soll – zum Beispiel ein globaler Quit-Button.
       
4. Film-Skript. Ein Film-Skript wird erzeugt, indem Sie das Skriptfenster öffnen, ohne dass irgendein Frame, Darsteller oder Sprite markiert ist. Es gilt für den gesamten Film und verarbeitet deshalb vornehmlich Ereignisse, die den Film als solchen betreffen.
       
    Zu den wichtigsten dieser Ereignisse gehören folgende: on startMovie markiert den Beginn des Films und wird häufig für bestimmte Initialisierungen (Voreinstellungen) verwendet, zum Beispiel für die Anfangswerte globaler Variablen oder Eigenschaften. on stopMovie kennzeichnet dagegen das Ende des Films und wird manchmal für »Aufräumarbeiten« benutzt.
       
    Hier sehen Sie ein kombiniertes Praxisbeispiel: Beim Start des Films soll die Systemfarbe auf 8 Bit umgestellt werden, weil bestimmte Spezialeffekte (der Palettenkanal und so weiter) nur so funktionieren. Aus Höflichkeitsgründen gegenüber den Benutzern ist es natürlich notwendig, diese Farbtiefe (immerhin eine wichtige globale Betriebssystemeinstellung!) beim Beenden des Films wieder zurückzusetzen. Das folgende Filmskript ist eine passende Lösung:
       
global gColorDepth
 
on startMovie    -- Originalfarbtiefe speichern:
  gColorDepth = the colorDepth
  -- Farbtiefe auf 8 Bit setzen:
  set the colorDepth = 8
end
 
on stopMovie
  -- Farbtiefe wiederherstellen:
  set the colorDepth = gColorDepth
end
    Wie Sie wahrscheinlich schon längst bemerkt haben, leiten zwei Minuszeichen (--) einen Kommentar ein. Da es keine mehrzeiligen Kommentare gibt, enthält das Skriptfenster zwei Buttons, um aus mehreren ausgewählten Zeilen Kommentare zu machen beziehungsweise die Kommentarzeichen wieder zu entfernen.
       
    Eine andere beliebte Eigenschaft von Filmskripten ist die Möglichkeit, dort selbst definierte Ereignisprozeduren zu platzieren:
       
on meinEreignis
  -- beliebige Anweisungen
end
    Diese Definition entspricht einer allgemeinen Funktion in einer prozeduralen Programmiersprache: Wenn Sie in irgendeinem Skript meinEreignis schreiben, wird diese Prozedur aufgerufen. Selbst definierte Lingo-Prozeduren können übrigens auch Parameter entgegennehmen. Das folgende Beispiel nimmt zwei Werte entgegen, addiert sie und gibt die Summe in das Textfeld ausgabe aus:
       
on summe a, b
  put a && "+" && b && "=" && a + b into member "ausgabe"
end
    Aufrufen können Sie diese Funktion beispielsweise als summe 3, 5.
       

Sprite-Berührungen testen

Für die Programmierung von Spielen oder die Realisation von Drag-and-Drop-Verhalten in Director ist es oft wichtig, zu überprüfen, ob ein Sprite ein anderes berührt oder enthält. Zu diesem Zweck sind die Funktionen within beziehungsweise intersects definiert.

Der folgende Ausdruck ist true, wenn Sprite 3 vollkommen im Begrenzungsrechteck von Sprite 5 enthalten ist:

sprite 3 within 5

Wenn die Begrenzungsrechtecke von Sprite 7 und Sprite 17 einander berühren, ist dagegen die folgende Bedingung true:

sprite 7 intersects 17

Eigenschaften

Eigenschaften sind ein interessantes, in dieser Form nur in Lingo verwirklichtes Konzept, um mehrere Zustände voneinander zu unterscheiden, die nicht unbedingt numerisch ausdrückbar sind. Beispielsweise besitzt ein Fernsehgerät die drei grundlegenden Zustände an, aus und Standby. An und aus ließen sich gut durch 1 und 0 beziehungsweise true und false ausdrücken. Allerdings wäre es seltsam, Standby durch 0.5 darzustellen. Besser lassen sich diese drei Zustände durch unterschiedliche Eigenschaften ausdrücken:

tv_zustand = #an
tv_zustand = #aus
tv_zustand = #standby

Eigenschaftsbezeichner beginnen mit einer Raute. Eine Eigenschaft ist automatisch definiert, wenn sie das erste Mal benutzt wird.

Lingo verwendet an manchen Stellen vordefinierte Eigenschaften, etwa zur Ermittlung des Darstellertyps: Die Eigenschaft the type of member liefert eine Eigenschaft wie #bitmap für Bitmap-Darsteller, #text für Textdarsteller oder #script für Skript-Darsteller zurück.

Listen

Die Liste ist die Lingo-Entsprechung eines Arrays. Aufgrund ihrer speziellen Eigenschaften ist sie allerdings eher mit der Liste und dem Hash in Perl (siehe Kapitel 5, Grundlagen der Programmierung) vergleichbar: In einer Liste können beliebig viele Werte abgelegt sein, sie können durch eine Kombination von Variablenname und Indexangabe gelesen und verändert werden.

Es gibt zwei Arten von Listen: einfache Listen, bei denen der Index eine ganze Zahl ist, und Eigenschaftslisten (Property Lists), bei denen der Index eine Eigenschaft ist – Letzteres entspricht in etwa einem Perl-Hash oder einem »assoziativen Array«.

Eine einfache Liste wird folgendermaßen eingerichtet:

liste = []

erzeugt eine leere Liste (noch ohne Elemente). Sie können dagegen folgendermaßen eine Liste erzeugen, die von Anfang an Werte enthält:

liste2 = [3, 5, ...]

Mit Hilfe von liste2[2] können Sie auf das zweite Element dieser Liste zugreifen – anders als in C und verwandten Programmiersprachen zählt der Index nicht ab 0, sondern ab 1.

liste[3] = "hallo"

weist dem dritten Element von liste den neuen Wert "hallo" zu. Wie die meisten Skriptsprachen ist auch Lingo untypisiert; eine Liste kann Werte vieler verschiedener Datentypen enthalten.

Eigenschaftenlisten

Eine leere Eigenschaftenliste wird folgendermaßen definiert:

pList = [:]

Eine Eigenschaftenliste, die bereits Werte enthält, dagegen so:

wochentage = [#mo:"Montag", #di:"Dienstag", ..., 
#sa:Samstag, #so:"Sonntag"]

Lesen können Sie ein Element einer Eigenschaftenliste zum Beispiel mittels wochentage[#di]. Die Zuweisung eines neuen Werts für ein einzelnes Feld ist ebenfalls sehr einfach. Angenommen, Sie möchten die Wochentagsliste für norddeutsche Benutzer umgestalten:

wochentage[#sa] = "Sonnabend"

Lingo für Audio und Video

Wie bereits oben erwähnt, werden Audio- und Video-Playback in Director vornehmlich über Lingo-Skripte gesteuert. Hier finden Sie deshalb die wichtigsten Befehle.

Lautstärke

Die globale Lautstärke, die die Werte 0 (aus) bis 7 (ganz laut) annehmen kann, lässt sich über die Eigenschaft the soundLevel einstellen:

set the soundLevel = 7  -- ganz laut
put the soundLevel into member "vol"  -- Wert anzeigen

Die beiden Drehbuch-Soundkanäle besitzen dagegen individuelle Lautstärkenwerte zwischen 0 und 255:

set the volume of sound 1 = 127 -- Kanal 1 mittel
laut2 = the volume of sound 2   -- Kanal 2 => Variable

Für die Regelung des Abspielverhaltens von Sound gibt es darüber hinaus eine Reihe von Soundbefehlen:

gp  sound pause 1 hält das Abspielen des Sounds in Kanal 1 an.
gp  sound play 1 spielt den Sound in Kanal 1 weiter.
gp  sound stop 2 stoppt das Abspielen von Sound in Kanal 2 ganz; mit einem einfachen play lässt sich dasselbe Sound-Sprite nicht wieder aktivieren.
gp  sound fadeIn 1, 100 blendet den Sound in Kanal 1 in 100 Millisekunden von 0 auf die volle Lautstärke.
gp  sound fadeOut 2, 1000 blendet den Sound in Kanal 2 über eine Sekunde von der aktuellen Lautstärke auf 0.
gp  puppetSound 1, "lied" spielt in Kanal 1 den Sounddarsteller Lied ab, ohne dass er im Drehbuch vorkommen muss.
gp  sound playFile 2, "hallo.wav" lädt die externe Sounddatei hallo.wav und spielt sie in Kanal 2 ab.

Videosteuerung

Digitalvideo-Sprites werden je nach Dateityp (QuickTime oder AVI) über etwas unterschiedliche Befehle gesteuert. Die wichtigsten Einstellungen für Video können Sie aber allgemein gültig über die folgenden Eigenschaften vornehmen:

gp  the movieRate of sprite ist die relative Abspielrate des Video-Sprites: Ein normal laufender Film hat den Wert 1, ein stehender den Wert 0. Sie können den Film also abspielen und wieder anhalten, indem Sie diese Eigenschaft setzen. Durch höhere positive Werte können Sie einen schnellen Vorlauf realisieren, durch negative einen Rücklauf.
gp  the movieTime of sprite gibt die seit Anfang des Videofilms bis zur aktuellen Position verstrichene Zeit an. Sie können einen Film auf Anfang setzen, indem Sie dieser Eigenschaft den Wert 0 zuweisen.
gp  the duration of member betrifft nicht das Video-Sprite, sondern den zugrunde liegenden Darsteller: Die Eigenschaft gibt die Gesamtdauer des importierten Films an; sie kann nur gelesen, aber nicht eingestellt werden. Sie können die Eigenschaft the movieTime of sprite auf diesen Wert setzen, um den Film ganz ans Ende zu spulen.

Galileo Computing

10.5.4 Export und Veröffentlichung von Director-Filmen  toptop

Nachdem Sie einen Director-Film fertig gestellt haben, müssen Sie ihn in ein Format bringen, in dem Sie ihn veröffentlichen können. Je nach Einsatzzweck gibt es dafür grundsätzlich zwei verschiedene Möglichkeiten:

gp  Ein Projektor ist ein selbstlaufendes Programm, das einen Director-Film auf einem Rechner abspielt, auf dem Director nicht vorhanden ist. Der Projektor ist die übliche Art und Weise, Director-Produktionen auf CD oder DVD zu vertreiben.
gp  Ein Shockwave-Film ist dagegen ein stark komprimierter Director-Film, der in einem Webbrowser abgespielt werden kann. Benutzer benötigen zu diesem Zweck den Shockwave-Player, der kostenlos bei Macromedia heruntergeladen werden kann. Unter www.shockwave.com betreibt Macromedia übrigens ein umfangreiches Unterhaltungsangebot, das aus zahlreichen Spielen, Cartoons und Musikangeboten im Shockwave-Format besteht.

In diesem Unterabschnitt wird kurz besprochen, wie Sie die beiden Arten exportierter Filme herstellen und verwenden können.

Projektoren erstellen

Um einen Projektor zu erstellen, müssen Sie die Option Datei • Projektor erstellen wählen. Beachten Sie, dass der Projektor nicht unbedingt etwas mit dem aktuell geöffneten Film zu tun haben muss. Sie müssen die zu verwendenden Filme ohnehin separat aussuchen. In dem Dialog müssen Sie deshalb als Erstes wählen, welche Filme zum Projektor gehören sollen. Sie müssen dabei nur dann mehrere Filme auswählen, wenn diese einander nicht per Lingo aufrufen – der Projektor kann auch zu den verknüpften Filmen springen, wenn sie als separate Dateien beigelegt werden. Bei öffentlich vertriebenen CD-ROMs sollten Sie solche Filme allerdings schützen: Wählen Sie Xtras • Filme aktualisieren und klicken Sie auf Schützen. Der Film wird als Datei mit der Endung .dxr gespeichert. Solange Sie sämtliche go to movie-Aktionen ohne Dateiendung geschrieben haben, funktionieren sie auch nach der Umwandlung in geschützte Filme noch tadellos.

Projektor-Optionen

Nachdem Sie alle gewünschten Filme ausgewählt haben, können Sie unter Optionen das genaue Abspielverhalten des Projektors bestimmen, beispielsweise können Sie sich zwischen Vollbild- und Fensterdarstellung entscheiden. Die Bühne wird bei der Option »Vollbild« allerdings nicht etwa hochskaliert. Stattdessen erscheint außen ein Rahmen in der Original-Hintergrundfarbe des Films. Wichtig ist auch, dass Sie die Option Alle Filme abspielen ankreuzen, wenn Sie mehrere Filme für die Aufnahme in den Projektor ausgewählt haben, die einander nicht automatisch aufrufen, sondern einfach nacheinander abgespielt werden sollen.

Unter Windows besitzt der fertige Projektor die Dateiendung .exe; der Mac registriert die Ausführbarkeit der Datei dagegen auf seine Weise. Beachten Sie, dass sich mit der Windows-Version von Director nur Projektoren für Windows erstellen lassen, während der Mac-Director sie sowohl für Mac  OS X als auch separat für Mac  OS 9 erzeugen kann.

Der nächste Schritt besteht darin, den fertigen Projektor – meist je eine Fassung für Macintosh und Windows – auf eine CD zu brennen. Beachten Sie dazu die Hinweise zum CD-Brennen in Kapitel 3, Die Hardware.

Die Lizenzpolitik von Macromedia verlangt übrigens, dass Sie auf der Verpackung und/oder im Abspann Ihrer Multimedia-CD-ROM, die Sie als Projektor liefern, das Macromedia-Logo und die Beschriftung »Made with Macromedia« anbringen. Entsprechende Vorlagen finden Sie auf Ihrer Director-CD.

Shockwave exportieren

Um einen Director-Film im Shockwave-Format für die Verwendung auf einer Webseite zu exportieren, müssen Sie Datei • Einstellungen für Veröffentlichungen wählen. Hier können Sie nicht nur eine Shockwave-Datei (Endung .dcr) erstellen, sondern auch automatisch die zugehörige HTML-Datei (Webseite) erzeugen lassen. Für diesen Verwendungszweck ist die Voreinstellung Shockwave-Standard gedacht. Nachdem Sie die passenden Voreinstellungen getroffen haben, können Sie sie mittels Datei • Veröffentlichen in der Praxis anwenden. Anschließend können Sie die HTML-Datei im Browser öffnen, um Ihren Shockwave-Film zu testen.

Um Shockwave-Filme einzeln zu erstellen, für die Sie den HTML-Code selbst erstellen möchten, können Sie stattdessen die bereits erwähnte Funktion Xtras • Filme aktualisieren verwenden und dort den Punkt In Shockwave-Film(e) konvertieren auswählen. Wie Sie das notwendige HTML zum Einbinden von Shockwave-Filmen schreiben, steht in Kapitel 16, HTML und XHTML.






  

Einstieg in PHP 5

Einstieg in Java

C von A bis Z

Einstieg in C++

Einstieg in Linux

Einstieg in XML

Apache 2




Copyright © Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de