Anker lichten
Das in den ersten zwei Tutorial-Teilen entwickelte Spiel SnakeMe ist schon mit Flash 5 realisierbar. Ein paar weitere Beispiele zeigen, inwiefern sich die neue MX-Version von der vorhergehenden absetzt.
- Regina Müller
Sowohl das Erstellen von Filmen als auch deren Betrachtung im Web wird mit Flash MX einfacher. Etliche Neuerungen erleichtern nicht nur die Einarbeitung, sondern erweitern die technischen Möglichkeiten zum Teil erheblich und ermöglichen sowohl Designer als auch Entwicklern ein noch kreativeres Arbeiten.
Ein Plus für die Projektarbeit ist zudem, dass Flash MX die Filme nicht nur wie bisher in älteren SWF-Formaten veröffentlichen kann, auch FLA-Dateien speichert die Software auf Wunsch im Format der Vorgänger-Version (‘Speichern unter’ > ‘Als Flash 5 speichern’). Auf diese Weise können mehrere Personen am gleichen Projekt arbeiten, unabhängig davon, ob sie die Version 5 oder MX verwenden. Enthält die Datei Funktionen, die nicht in das ältere Format konvertierbar sind, erscheint beim Speichern eine Warnmeldung.
Veröffentlichte Filme können Benutzer der MX-Version zudem einem breiteren Publikum zugänglich machen: Hinter dem Stichwort ‘Flash Accessibility’ verbirgt sich die Fähigkeit, Filme sehbehindertengerecht zu präsentieren. Diesem Thema widmet Macromedia sogar eine eigene Webseite. Die Unterstützung koreanischer und chinesischer Schriftzeichen sowie vertikale Textfelder und Unicode fördern darüber hinaus die Internationalisierung.
Benutzeroberfläche ist konfigurierbar
Einer gründlichen Überarbeitung hat der Hersteller die Benutzeroberfläche unterzogen. Da sich die Bedienfelder rund um die Bühne herum andocken lassen, erscheint die Oberfläche wesentlich aufgeräumter und ist leichter zu handhaben. Den kontextsensitiven Eigenschaftsinspektor hat Macromedia an andere Programme aus der eigenen Produktpalette angepasst. Er zeigt die wichtigsten Eigenschaften des aktuell ausgewählten Objekts an, egal ob es sich dabei um die Bühne selbst, ein Objekt darauf oder ein Symbol in der Bibliothek handelt. Damit entfällt der ständige Wechsel zwischen den entsprechenden Bedienfeldern. Für noch mehr Übersichtlichkeit kann der Benutzer die angedockten Bedienfelder minimieren, sodass nur die Titelleiste sichtbar bleibt. Individuelle Oberflächen-Layouts lassen sich speichern und auf Knopfdruck wieder herstellen.
Auch die Zeitleisten sind übersichtlicher als in der Vorgängerversion. Erheblich trägt dazu die Möglichkeit bei, Ebenen in Ordner zusammenzufassen, die der Anwender nach Belieben auf- und zuklappen kann. Alle Änderungen an einem Ordner wirken sich auf alle seine Ebenen aus. Man klappt einfach den betreffenden Ordner zu, wählt in ihm ein Bild in der Zeitleiste aus und fügt nach Belieben Bilder ein oder löscht sie. So lassen sich beispielsweise schnell und einfach Schlüsselbilder für alle Ebenen innerhalb eines Ordners setzen. Diese Änderungen wirken sich nur auf Ebenen innerhalb des jeweiligen Ordners aus, alle anderen Ebenen der Zeitleiste sind davon nicht betroffen.
Die weiterentwickelte ActionScript-Umgebung sowie Erweiterungen der Sprache selbst vereinfachen die Arbeit und gestalten sie wesentlich effizienter. Codehinweise, eine integrierte Befehlsreferenz sowie der überarbeitete ActionScript-Editor erleichtern sowohl Profis als auch Neulingen die Arbeit mit Aktionen. Sollte dennoch etwas schief gehen, kommt man dem Fehler mit dem verbesserten Debugger mit Hilfe von Breakpoints und dem Durchlaufen der einzelnen Codezeilen der Aktionen leichter auf die Schliche als bisher.
Flash-Filme lassen sich leichter aktualisieren, da ActionScript zur Laufzeit nicht nur mehr SWF-Dateien, sondern auch JPEGs und MP3-Dateien nachladen kann. Auf diese Weise braucht man den Film nicht bei jeder Aktualisierung neu zu veröffentlichen. Ein Austausch der gewünschten Bilder und Sounds auf dem Server genügt.
Wer häufiger in die Verlegenheit kommt, Dateien ähnlichen Typs zu erstellen, wird sich besonders über die Dokumentvorlagen (Templates) freuen. Zusätzlich zu den mitgelieferten kann man eigene erstellen. Alle stehen beim Anlegen einer neuen Datei zur Verfügung und können dem Benutzer immer wiederkehrende Handgriffe wie das Einstellen von Filmgröße und Hintergrund oder das Importieren gemeinsamer Fonts und Grafiken abnehmen.
Hilfsmittel für effizientere Arbeit
Um aus der aktuellen Flash-Datei eine Vorlage zu erstellen, wählt der Anwender ‘Datei > Als Vorlage speichern’. In der folgenden Dialogbox gibt er einen Namen für die Vorlage ein und wählt eine Kategorie aus, in der diese Vorlage erscheinen soll. Wer eine zusätzliche Vorlagenkategorie anlegen will, gibt einen neuen Kategorie-Namen ein. Der kurze Beschreibungstext, den man zur Vorlage angeben kann, erscheint im Dialogfeld beim Anlegen eines neuen Dokuments.
Designer können sich über einige Neuerungen freuen, die das Anlegen komplexer Grafiken vereinfachen. Die Arbeitsweise des Werkzeugs für die freie Transformation hat Macromedia an die anderer professioneller Grafikprogramme angepasst. Mit diesem Tool zeigen sich die Effekte mehrerer Objekttransformationen auf einen Blick. Der ‘Umhüllen’-Modifizierer unterstützt die Erstellung komplexer Grafikobjekte, indem er dem Benutzer die Möglichkeit bietet, die Begrenzungsbox eines Objekts an verschiedenen Punkten anzufassen und zu verzerren. Der Inhalt der Box passt sich automatisch der neuen Form an. Allerdings ist der Modifizierer ausschließlich auf grafische Formen anwendbar, Movieclips, Grafiksymbole, Videos oder Textfelder lassen sich auf diese Art nicht verändern.
Anker setzen und im Film navigieren
Mit den ‘benannten Ankern’ kann der Benutzer in Flash-Filmen Bookmarks setzen. Der Navigation dienen die Browser-Buttons ‘Vorwärts’ und ‘Zurück’. Sie springen jeweils den nächsten beziehungsweise den vorhergehenden benannten Anker des Films an.
Soll das erste Schlüsselbild jeder Szene automatisch ein solcher Anker sein, lässt sich das in den Flash-Voreinstellungen definieren. Dazu öffnet man den Dialog ‘Bearbeiten > Voreinstellungen’ und aktiviert in der Registerkarte ‘Allgemein’ unter der Rubrik ‘Zeitleistenoptionen’ die Checkbox ‘Benannter Anker in Szene’. Beim Anlegen einer neuen Szene wird so das jeweils erste Schlüsselbild mit einem benannten Anker versehen, der den Namen der Szene trägt. Ein solches Schlüsselbild ist in der Zeitleiste an einem goldenen Anker-Icon erkennbar.
Anderen Schlüsselbildern lassen sich benannte Anker zuweisen, indem man dem Schlüsselbild im Eigenschaftsinspektor zuerst eine Bildmarkierung zuweist. Daraufhin erscheint die Checkbox ‘Benannter Anker’ und kann aktiviert werden. Die Deaktivierung dieser Option verwandelt den Anker wieder in ein normales Schlüsselbild.
Flash fügt solche Bookmarks nicht automatisch beim Veröffentlichen in den Film ein. Wer dies veranlassen will, öffnet den Menüpunkt ‘Datei > Einstellungen für Veröffentlichungen’ und wählt in der Registerkarte ‘HTML’ aus der Drop-down-Liste ‘Vorlage’ die Option ‘Flash mit benannten Ankern’ aus. Die Anker funktionieren allerdings nur in einem Browser mit dem Flash Player 6.
Um Objekte separat zu animieren, kann man sie auf verschiedene Ebenen verteilen. Dies gilt für Grafikobjekte, Instanzen, Bitmaps, Videoclips und aufgeteilte Textblöcke. Zu Beginn können die Objekte in einer oder mehreren Ebenen liegen. Alle unselektierten Objekte behalten ihre ursprüngliche Position in der Zeitleiste bei.
Animation von Texten ist leichter
Wendet man den Befehl ‘Auf Ebenen verteilen’ auf geteilte Textbausteine an, vereinfacht das die Animation von Texten. Die einzelnen Textblöcke liegen auf eigenen Ebenen in der Zeitleiste und sind so separat animierbar.
Anders als frühere Versionen kann Flash MX Filme, die Videoclips enthalten, nicht nur als QuickTime (MOV-Datei), sondern auch als Flash-Film (SWF-Datei) exportieren. Je nach installierter Version von QuickTime (ab Version 4) beziehungsweise DirectX (ab Version 7) kann die Software zudem digitale Videos in verschiedenen Formaten importieren:
- AVI, MPG/MPEG (Windows oder Mac mit QuickTime oder Windows mit DirectX)
- MOV, DV (Digital Video) (Windows oder Mac mit QuickTime)
- WMF, ASF (Windows Media-Dateien, nur Windows mit DirectX)
Videos innerhalb der Filme komprimiert Flash standardmäßig mit dem Sorenson Spark Codec. Welche Videoformate sich importieren lassen hängt von den Codecs ab, die auf dem Rechner installiert sind. Unter QuickTime 4 etwa lassen sich MPEG-Videoclips nur ohne Ton importieren, da die Apple-Software das Audioformat nicht unterstützt. Der Export der Audiodaten aus importierten Videoclips erfolgt entsprechend der globalen ‘Einstellungen für Veröffentlichungen’ als Streaming Audio.
Die Eigenschaften eines Videoclips auf der Bühne lassen sich zum Teil über den Eigenschaftsinspektor, zum Teil aber nur über das Dialogfeld ‘Eigenschaften für eingebettetes Video’ anzeigen. Eine Vorschau des Films - allerdings ohne Sound - bewirkt das Verschieben des Abspielkopfes in der Zeitleiste mit der Maus. Eine Vorschau mit Sound liefert der Menüpunkt ‘Film testen’.
Animationen können als Masken dienen
Eine Maske legt fest, welche Bereiche der Bühne sichtbar sein sollen und welche nicht. Bisher konnten Flash-Benutzer in einer Maskenebene die sichtbaren Bereiche der darunter liegenden Ebene(n) definieren. Animierte Masken zu erstellen, war aufwendig. Die Version MX bietet die Möglichkeit, einen Movieclip per ActionScript direkt einem anderen Movieclip als Maske zuzuweisen. Auf diese Weise lassen sich komplexe Animationen als Maske verwenden, die auch Objekte auf mehreren Ebenen enthalten können.
Die Beispieldatei maske.fla maskiert einen Movieclip, der einen Text enthält, mit einem Movieclip, der zwei animierte Kreise beinhaltet. Ein Button aktiviert die Maskierung über folgende Objektaktion:
on (release) {
ins_text.setMask(ins_spots);
}
Diese Methode hat einen kleinen Nachteil gegenüber der Verwendung von Maskenebenen: Eine per ActionScript gesetzte Maske kann nicht mehrere Movieclips gleichzeitig maskieren. Außerdem werden - wie in allen Movieclip-Masken - einzelne Linien bei der Maskierung nicht berücksichtigt, sondern nur gefüllte Formen und Texte.
Enthält eine Maskenebene einen Movieclip und ruft man dessen Methode setMask auf, hat der ActionScript-Aufruf Priorität und hebt die Maskierung durch die Maskenebene auf. Dies lässt sich nicht rückgängig machen. Der einzige Weg, die ActionScript-Maskierung aufzuheben, ist, dem maskierten Movieclip als neue Maske den Wert null zuzuweisen:
ins_text.setMask(null);
Wer Textfelder mit Rollbalken versehen will, kann dies auf verschiedene Weise tun. Eine Möglichkeit ist, einer beliebigen Instanz eines Textfeldes mit eigenem Instanznamen über das Kontextmenü oder im Menü ‘Text’ das Attribut ‘rollbar’ zuzuordnen. Als nächstes erstellt man zwei Buttons für das Scrolling nach oben und unten und zieht diese auf die Bühne. Dort wählt man einen Button aus, öffnet das Aktionenbedienfeld und weist ihm als Objektaktion den Befehl
instanzName.scroll +=1;
zu, um ein Scrolling nach oben zu ermöglichen. Für die entgegengesetzte Richtung verringert man die Eigenschaft scroll der Textfeld-Instanz jeweils um eins:
instanzName.scroll -= 1;
Alternativ kann man beiden Buttons folgende Aktionen zuweisen:
on (press) {
_level0.scrolling = 1;
}
on (release, releaseOutside) {
_level0.scrolling = 0;
}
beziehungsweise
on (press) {
_level0.scrolling= -1;
}
on (release, releaseOutside) {
_level0.scrolling = 0;
}
In diesem Fall genügt in einer Bildaktion die folgende Zeile, um ein Scrolling des Textes nach oben oder unten zu bewirken oder die aktuelle Textposition beizubehalten:
meinText.scroll += _level0.scrolling;
Formen mit ActionScript zeichnen
Flash MX ermöglicht das Erstellen einfacher grafischer Formen (Vektorgrafiken) zur Laufzeit. Dazu stellt das Movieclip-Objekt in ActionScript eine Reihe von Methoden zum Zeichnen zur Verfügung, die Linien, Kurven und Füllungen erzeugen und löschen können. Listing 1 erzeugt beispielsweise ein einfaches Herz.
Listing 1: Zeichnen zur Laufzeit
// Diese Zeile erzeugt einen neuen, leeren Movieclip in Level 1.
_root.createEmptyMovieClip(‘herz’, 1);
// In diesem leeren Movieclip wird jetzt gezeichnet.
with (_root.herz) { // Die Form wird mit der Farbe rot und dem Alphawert 100 gefüllt
beginFill(0xf0000f, 100);
// Die Linie hat die Stärke 5, die Farbe Rot und den Alphawert 100
lineStyle (5, 0xff000f, 100);
// die Anfangsposition wird auf (200, 200) gesetzt
moveTo (200, 200);
// es wird eine Kurve zu (250, 150) -- durch den Punkt (200, 150) gezeichnet
curveTo (200, 150, 250, 150);
// eine weitere Kurve von (250, 150) nach (300, 200) -- durch (320, 150)
curveTo (320, 150, 300, 200);
// und so weiter
curveTo (260, 260, 200, 300);
curveTo (140, 260, 100, 200);
curveTo (80, 150, 150, 150);
// bis zur letzten Kurve zurück zum Ausgangspunkt
curveTo (200, 150, 200, 200);
endFill();
}
Mit Hilfe der Aktion setInterval können Funktionen und Objektmethoden in regelmäßigen Zeitabständen immer wieder aufgerufen werden. Den Timer setzt entweder der Aufruf
setInterval (funktionsName, intervall[, arg1,.., argn])
oder entsprechend:
setInterval (objekt, methodenName, intervall[, arg1, .., argn])
Dabei enthält der Parameter funktionsName den Namen einer vorhandenen Funktion oder eine komplette Definition. Der folgende Aufruf schreibt einmal pro Sekunde den Text ‘Hallo, McFly!’ ins Ausgabefenster:
setInterval(trace, 1000, "Hallo, McFly!");
Wird eine Objektmethode in regelmäßigen Abständen aufgerufen, so ist der Wert objekt eine Referenz auf ein vom ActionScript-Typ Object abgeleitetes Objekt. Den Namen der aufzurufenden Methode liefert der zweite Parameter. Angenommen es gibt eine Instanz Biff mit der Methode knockKnock, die über den einzigen Befehl trace(‘Hallo, McFly’); verfügt. Obiges Beispiel sieht dann etwa so aus:
SetInterval(Biff, knockKnock, 1000);
Hier ist der Text nicht als zusätzliches Argument erforderlich, da er in der Methode selbst steht.
Bei beiden Varianten gibt der Wert intervall die Zeit zwischen den Aufrufen der angegebenen Funktion oder Methode in Millisekunden an. Optional sind die Übergabeparameter arg1 bis argn.
Diese Timer können nicht nur für Zeitanzeigen verwendet werden, sondern für alle regelmäßigen Funktionsaufrufe, beispielsweise die periodische Aktualisierung von Variablen, die ein Script vom Server liest.
Vorprogrammierte Standard-Elemente für Benutzeroberflächen wie Buttons, Scrollbalken und Listboxen kann der Anwender per Drag & Drop in seine Filme einfügen. Prinzipiell sind Flash-Komponenten vorprogrammierte Movieclips mit festgelegten Parametern. Diese werden beim Erstellen des Flash-Dokuments definiert, können aber zur Laufzeit geändert werden. Meist besitzen Komponenten auch eigene ActionScript-Methoden. Im Grunde sind Komponenten eine Weiterentwicklung der SmartClips aus Flash 5. Die folgenden Komponenten gehören zum Lieferumfang von Flash MX: CheckBox, ComboBox, ListBox, PushButton, RadioButton, ScrollBar, ScrollPane.
Komponenten per Drag & Drop einfügen
Für alle diese Komponenten existieren ActionScript-Objekte, über deren Eigenschaften und Methoden sich die Komponenten-Instanzen auf der Bühne zur Laufzeit ansprechen lassen. Ihre grafische Darstellung kann der Anwender modifizieren. Im Bibliotheksordner ‘Component Skins’ befinden sich die grafischen Elemente der Komponenten. Jede dieser ‘Skins’ besteht aus mehreren Movieclips (Skin-Elemente). Die einfachste Möglichkeit, die grafische Darstellung einer Komponente zu verändern, besteht darin, die betreffenden Skin-Elemente direkt auf der Bühne zu bearbeiten. Man kann aber auch neue Movieclips für die einzelnen Elemente erstellen und sie ihnen per ActionScript zuweisen - allerdings ist diese Methode nicht gerade trivial.
Da Flash in jedem Fall automatisch alle Instanzen der Komponenten, die diese Skins verwenden, aktualisiert, ist es nicht möglich, nur das Aussehen einer einzelnen Instanz zu verändern. Eine Live-Vorschau in der Autorenumgebung stellt Änderungen an Komponenten-Skins nicht dar, sodass man die Modifikationen erst beim Testen des Films kontrollieren kann.
Dieser Artikel konnte nur einen kurzen Einblick in einige der neuen Features von Flash MX bieten. Umfangreiche Themen wie eigene wiederverwendbare Komponenten für spezielle Anwendungsbereiche zu erstellen, würde den Rahmen eines einführenden Tutorials sprengen. Interessierte Leser finden auf der Website von Macromedia eine Fülle weiterführender Informationen zu allen neuen Features.
Regina Müller
arbeitet als Multimedia-Programmiererin bei der a.f.i.m. gmbh in München.
iX-TRACT
- Macromedia hat ihre speziell für Webanwendungen konzipierte Animationssoftware Flash um diverse neue Funktionen erweitert und die Benutzeroberfläche übersichtlicher gestaltet.
- Flash MX erleichtert sowohl Designern als auch Entwicklern die Einarbeitung und gestattet ein noch kreativeres Arbeiten als bisher.
- Erweiterte Scripting- und Debugging-Funktionen sowie neue Tools zum Zeichnen machen die neue Version zu einem robusten Werkzeug für die Erstellung komplexer Webanwendungen.
Böses Flash, gutes Flash
Gott sei Dank vorbei sind die Zeiten, in denen Web-Surfer quietschig-bunte Websites bestaunten, auf denen ständig etwas zappelte. Obwohl die Ansprüche an das Design gestiegen sind, gilt jedoch noch immer für viele Internetauftritte das Motto: ‘Wenn du nichts zu sagen hast, sag’s mit Flash!’
Was man nicht ...
Dabei reicht ein bisschen gesunder Menschenverstand aus, um die größten Flash-Fallen zu erkennen und zu vermeiden.
Flash ist kein Selbstzweck.
Nur, weil man Flash beherrscht, muss man nicht alles damit umsetzen - schon gar nicht, wenn Inhalte ohne Flash ebenso gut oder sogar besser präsentiert werden können. Ein textlastiges Webangebot ist als HTML oft benutzerfreundlicher, da HTML-Seiten ohne weiteres durchsucht und Texte leichter kopiert oder gespeichert werden können. Auch das Drucken ist in Flash zwar möglich, doch wesentlich einfacher ist es, dazu den entsprechenden Button des Browsers zu verwenden.
Intros strapazieren die Geduld.
Wenig sinnvoll sind große Flash-Intros vor reinen HTML-Seiten. Der Benutzer sieht sie meist nur ein einziges Mal an - wenn überhaupt - und betätigt lieber den Skip-Intro-Button, den inzwischen die meisten Intros anbieten. Nur: Wenn der Benutzer das Intro überspringen kann, ohne dass ihm wesentliche Informationen verloren gehen - warum wird es ihm erst aufgezwungen?
Sparsame Effekte wirken stärker.
Wenn schon Animationen und Effekte verwendet werden, dann sparsam, und nicht in rauhen Mengen, nur weil Flash das prinzipiell kann.
Vorgefertigtes kann langweilen.
Professionelle Webauftritten sollten keine vorgefertigten Effekte preisgünstiger Tools verwenden, auch wenn das so schön fix geht. Viele Benutzer haben diese Effekte schon dreitausend Mal gesehen und finden sie spätestens beim dritten Ansehen langweilig.
Schrille Farben blenden.
Oft ist ein zurückhaltendes Design für den Benutzer weit angenehmer als eines, das ihn mit quietschig bunten Farben anspringt. Je bunter eine Website ist, desto mehr lenkt sie das Auge von den wichtigen Elementen ab. Ein gezielter Einsatz von Farben und Kontrasten dagegen richtet die Aufmerksamkeit auf wichtige Bereiche. Das beste Design ist oft eins, das man nicht sofort bemerkt.
... und was man tun sollte
Trotz aller genannten Punkte: Flash hat seine Existenzberechtigung und darf guten Gewissens eingesetzt werden, wenn es einen Mehrwert gegenüber anderen Techniken bringt.
Formulare lädt Flash nur einmal.
Gut umsetzten lassen sich Formulare, da sie oft direkt anzeigen, ob und welche Felder der Anwender nicht oder falsch ausgefüllt hat, ohne dass der Browser die Seite immer wieder neu laden muss (und dabei im schlechtesten Fall alle vorherigen Einträge verliert).
Animationen bringen Mehrwert.
Ist der Inhalt entsprechend, sind Animationen sinnvoll. Beispielsweise lassen sich Abläufe - etwa bei einer ‘Guided Tour’ - mit Flash sehr gut darstellen.
Webangebote dürfen peppig sein.
Unterhaltende Webangebote mit spielerischem Charakter können durch die gezielte Verwendung von Animationen und Interaktionsmöglichkeiten die Inhalte für den Benutzer interessanter gestalten.
Kleine Intros nerven nicht.
Wenn schon Intro, dann kurz und knackig. Es sollte schnell geladen und so kurz sein, dass es im Grunde schon vorbei ist, bevor der Benutzer den Skip-Intro-Button betätigen kann.
Flash hat eigene Stärken.
Flash ist für Vektorgrafiken und -animationen optimiert. Grafiken wie GIFs und JPEGs lassen sich zwar einbinden, können die Darstellung jedoch erheblich verlangsamen. Auf Bilder, die nicht unbedingt nötigt sind, sollte man daher verzichten. Auch hier gilt: Weniger ist oft mehr.
(ka)