Film im FilmEin MIAW, ein sogenanntes "Movie in a window", ist zunächst mal nichts anderes als ein Director-Movie in einem Extra-Fenster über der Bühne. Dennoch gibt es eine Reihe zusätzlicher Möglichkeiten im Gegensatz zu einem normalen Director-Film, die die Verwendung von MIAWs interessant machen können.Aufgrund der Tatsache, daß bei der Verwendung von MIAWs mehrere Director-Filme gleichzeitig ablaufen, gestaltet sich die Programmierung solcher Filme etwas anders als bei normalen Projekten. So muß zum Beispiel darauf geachtet werden, daß eine Kommunikation zwischen der Bühne und dem MIAW stattfinden kann. Dabei gibt es zwei Möglichkeiten, entweder das MIAW spricht mit der Bühne, oder die Bühne mit dem MIAW. Sollten mehrere MIAWs gleichzeitig geöffnet sein, so sollten Sie immer über den Umweg der Bühne miteinander kommunizieren. Dies empfehlen jedenfalls wärmstens die Handbücher.
Spezielle Lingo-BefehleDie Verwendung von MIAWs eröffnet die Nutzung neuer Lingo-Befehle in den Filmen. So findet etwa die Kommunikation zwischen der Bühne und einem MIAW immer über den"tell"-Befehl statt. Auch kann das MIAW über denselben Befehl mit der Bühne Informationen austauschen.
Wie erhalt man ein MIAW?Zur Öffnung eines Fensters über der Bühne verwendet man sinnigerweise...
open window NAME
wobei NAME entweder direkt der Name des zu verwendenden Director-Filmes sein kann, oder ein ganz eigener Name für das Fenster (z.B. "Infofenster"). Wenn Director also einen entsprechenden benannten Film in seinem Suchpfad findet, so öffnet er diesen sofort als neues MIAW, ansonsten muß man mit
set the filename of window NAME="Film.DIR"
nochmal explizit den zu verwendenden Film angeben. Mit
set the rect of window NAME=rect[0,0,230,230]
kann man die Größe des MIAWs vorgeben. Ansonsten wird das Fenster mit den Vorgaben des evtl. angegebenen Filmes geöffnet, oder aber in einer festen Größe falls kein Film übergeben wurde. Als kleines Beispiel sei es mal empfohlen, im Nachrichtenfenster von Director direkt mal einzugeben:
open window "Credits.dcr"
Dies öffnet den kleinen "Über Director..."-Film als MIAW, der auch unter dem Hilfe-Menü zu finden ist.
The WindowListDirector verwaltet eine globale Liste über alle geöffnete MIAWs. Diese spezielle Liste heißt
steht in
Diese Liste verwaltet also alle geöffneten Fenster mit dem angegebenen Namen. Die Einträge in der Liste wachsen natürlich auch mit dem Öffnen eines jeden weiteren MIAWs mit. MIAWs können als Sprites oder als Fenster verstanden werden: man kann sie wie Sprites unsichtbar machen (set the visible of window "NAME" to false) oder sie durch Anklicken des entsprechenden Buttons runterklicken (nicht zu verwechseln mit dem Schließen eines Fensters). Das wird in Director "zoomen" genannt und dafür gibt es einen enstsprechenden Handler, der aufgerufen werden kann, ganz vergleichbar zu einem "on mouseup" für ein Sprite:
Denkbare Verwendungen dafür wären etwa die Neupositionierung von Sprites auf der Bühne, angepaßt an die neue Größe des Fenters (trickreich, aber machbar), oder die Nutzung zur Mitteilung an die Bühne (wenn Fenster gezoomt ist, dann tue etwas bestimmtes). Ein Fenster kann also wie ein Sprite unsichtbar machen. Dennoch ist es dann immer noch formal "geöffnet" und kann jederzeit wieder mit
Der FenstertypWie bereits erwöhnt gibt es eine Reihe von Lingo-Befehlen, die MIAW-spezifisch sind. Ein Befehl ist der set the windowType-Befehl.Damit kann man einstellen, was für eine Art Fenster für das MIAW geöffnet werden soll. Es gibt eine Reihe von Werten, die dafür benutzt werden können.
Natürlich unterscheiden sich die Fenster auf Windows und Mac Plattformen. Des weiteren gibt es auf dem Mac noch Sprechblasenfenster im Bereich von 1980-2048, welche angeblich systemeigen sein sollen. Aufgrund des fehlenden Macs kann ich aber darüber keine Aussagen machen. Selber versuchen macht schlau.
Was kann man nun mit MIAWs machen?Vor einiger Zeit hat es in der Liste eine Anfrage gegeben, daß ein Hauptfilm auf der Bühne mehrere kleinere Bilder darstellen sollte. Klickt nun der User auf eines der Bilder, so sollte ein MIAW aufgehen, in dem das entsprechende Bild größer dargestellt werden sollte. Diese Aufgabenstellung läßt sich sehr einfach und elegant mit Hilfe eines Tricks bewerkstelligen.
Zunächst braucht man aber natürlich seine Bühne mit den entsprechenden Bildern: ich habe mir im Beispielfilm damit beholfen, drei Screenshots der Website zu nehmen. Alle drei Bilder stehen auf der Bühne und können angeklickt werden: ![]() Beim Anklicken wird ein MIAW geöffnet, welches nur ein leeres Dummy-Bild oben links in der Ecke auf seiner eigenen Bühne stehen hat. Das MIAW loopt mit einem "go to the frame" immer auf demselben Bild. ![]() Zurück zum HaupfilmBeim Anklicken eines Bildes im Hauptfilm wird das Bild des Darstellers dem MIAW übergeben mit der Bitte, das Bild des Dummy-Bildchens gegen das Spritebild auszutauschen:
Weitere Tricks mit MIAWsDie Handbücher zu Director weisen darauf hin, daß auch Funktionen im Hauptfilm von einem MIAW aus aufgerufen werden können. Funktionen sind Unterprogramme, die Werte als Ergebnis zurückliefern:
on Beispielfunktion
Diese oben dargestellte Funktion nimmt einen WERT entgegen, multipliziert ihn mit einem Zufallswert von 1 - 50 und prüft dann das Ergebnis. Wenn WERT nun genau 50 ist, dann wird WAHR (TRUE) zurückgegeben, ansonsten FALSCH (FALSE). Zugegeben, diese Funktion ist etwas künstlich, aber wichtig ist in diesem Zusammenhang nur, daß auch ein MIAW darauf zurückgreifen könnte, wenn diese Funktion Teil des Hauptfilmes wäre: im MIAW:
tell the stage
Das Ergebniss des Aufrufes wäre dann in einer speziellen Systemvariable zu finden, die da heißt the result. Somit kann das MIAW nach Aufruf der Funktion im Haupfilm das Ergebnis überprüfen und sich dementsprechend verhalten:Im MIAW: ...
tell the stage
Natürlich kann the result auch für andere Zwecke mißbraucht werden, so etwa auch zur weiter oben dargestellten Übergabe eines Medienelementes an das MIAW: im MIAW:
tell the stage
Hier bittet das MIAW den Hauptfilm um die Übergabe des Mediums des Darstellers "NAME". Das MIAW kann es sich dann in der Variable the result abholen:" im MIAW:
tell the stage
Damit wäre ein MIAW also von außen programmierbar. Die Besetzung kann dynamisch geändert werden, wobei der Medientyp keine Rolle spielt. Somit könnte ein MIAW weniger als eigener Film programmiert als vielmehr zu einer Schablone umfunktioniert werden, in der von der Hauptbühne aus dynamisch neue Elemente plaziert werden. MIAWs eignen sich für viele Dinge: denkbar wären Zum Beispiel eine Art Fernbedienung, mit der sich der Benutzer durch verschiedene Filme zappen kann oder auch ein Zusatztool wie etwa ein Taschenrechner oder ein Notizblock zu einem Programm. MIAW-Demo - Movie gezippt für PC, Demo für MAC (Projektor + Sourcen)
Alle Skripte dürfen frei und auch für kommerzielle Zwecke verwendet werden. Es wäre nett, wenn ich in einem solchen Falle einen kurzen Hinweis zugemailt bekäme. |