17.4 Verhalten
Besser als selber zu programmieren
Verhalten ermöglichen es, Programmierung zu verwenden, ohne selber programmieren zu müssen. Dies ist zum einen eine Effizienzsteigerung, und zum anderen erlauben Verhalten auch ActionScript-Legasthenikern den Einsatz von Programmierschnipseln - gerade bei Projektteams ist dies sehr nützlich, falls z.B. die Programmierer den Gestaltern solche Schnipsel zur einfachen Anwendung vorbereiten. Und im Lieferumfang von Flash sind ohnehin bereits zahlreiche Verhalten inbegriffen.
Gerade im Zusammenspiel mit Komponenten gelingt es so, Flash zur Entwicklungsumgebung für beinahe jeden zu machen: Wie aus einem Baukasten werden die Anwendungen dann aus Komponenten zusammengesetzt. Die Funktionalität und das Zusammenspiel der Komponenten bestimmen der Entwickler durch die Verhalten!
Macromedia On Demand
Unter http://www.macromedia.com/macromedia/events/online/
ondemand/index.html bietet Macromedia neben zahlreichen Lehrfilmen auch eine einfache Einführung in das Thema Verhalten (engl. Behaviors).
17.4.1 Verhalten anwenden
Hier klicken, um das Bild zu Vergrößern
Abbildung 17.7
Der Verhaltensinspektor erlaubt das Hinzufügen, Bearbeiten und Entfernen von Verhalten auf Bilder, Bildschirme und Objekte. Außerdem befindet sich im Optionsmenü eine Funktion zum Neuladen modifizierter oder neu hinzugefügter Verhalten.
Die Anwendung von Verhalten gestaltet sich recht einfach. Im ersten Schritt wählen Sie ein Objekt oder ein Schlüsselbild und dann das gewünschte Verhalten im Verhaltensinspektor (Fenster • Entwicklungs-Bedienfelder • Verhalten). Einige Verhalten erfordern noch weitere Angaben, die automatisch abgefragt werden. Abschließend verknüpfen Sie dieses Verhalten mit dem gewünschten Ereignis, um zu bestimmen, wann genau es stattfinden soll. Das fertig eingestellte Verhalten liegt dann als normales ActionScript entweder auf dem gewählten Objekt (Objektskript) oder auf dem Schlüsselbild (Bildskript) und kann dort noch weiter angepasst werden.
Beachten Sie bitte, dass nicht alle der folgenden Verhalten in der Standardversion von Flash MX 2004 enthalten sind.
Tabelle 17.10
Verhaltensweisen
Verhalten
|
XML-Dateien
|
Controller verknüpfen
|
Associate_Controller.xml
|
Anzeige verknüpfen
|
Associate_Display.xml
|
CuePoint-Navigation für benanntes Bild
|
CuePointNamedFrame.xml
|
CuePoint-Navigation für Folie
|
CuePointSlide.xml
|
Gehe zu erster Folie
|
GoToFirstScreen.xml
|
Gehe zu letzter Folie
|
GoToLastScreen.xml
|
Gehe zu nächster Folie
|
GoToNextScreen.xml
|
Gehe zu vorheriger Folie
|
GoToPreviousScreen.xml
|
Gehe zu Folie
|
GoToScreen.xml
|
Grafik laden
|
Graphic_load_graphic.xml
|
Bildschirm ausblenden
|
HideScreen.xml
|
Nach vorne verschieben
|
Movieclip_Bring Forward.xml
|
In den Vordergrund
|
Movieclip_Bring to Front.xml
|
Movieclip duplizieren
|
Movieclip_Duplicate.xml
|
GotoAndPlay bei Bild oder Label
|
Movieclip_GotoAndPlay.xml
|
GotoAndStop bei Bild oder Label
|
Movieclip_GotoAndStop.xml
|
Externen Movieclip laden
|
Movieclip_loadMovie.xml
|
Nach hinten verschieben
|
Movieclip_Send_Backward.xml
|
In den Hintergrund
|
Movieclip_Send_to_Back.xml
|
Ziehen des Movieclips beginnen
|
Movieclip_Start_Dragging.xml
|
Ziehen des Movieclips stoppen
|
Movieclip_Stop_Dragging.xml
|
Movieclip entladen
|
Movieclip_unloadMovie.xml
|
Vollbildmodus ein/aus
|
Projector_Full_Screen.xml
|
Bildschirm anzeigen
|
ShowScreen.xml
|
Sound aus Bibliothek laden
|
Sound_Load_library_sound.xml
|
Streaming-MP3-Datei laden
|
Sound_Load_mp3_file.xml
|
Sound abspielen
|
Sound_Play_Sound.xml
|
Alle Sounds stoppen
|
Sound_Stop_All_Sounds.xml
|
Sound stoppen
|
Sound_Stop_Sound.xml
|
Übergang
|
transitions.xml
|
Datenquelle auslösen
|
Trigger.xml
|
Video vorspulen
|
Video_FFW.xml
|
Video ausblenden
|
Video_Hide.xml
|
Video unterbrechen
|
Video_Pause.xml
|
Video abspielen
|
Video_Play.xml
|
Video zurückspulen
|
Video_RW.xml
|
Video einblenden
|
Video_Show.xml
|
Video anhalten
|
Video_Stop.xml
|
Gehe zu Webseite
|
Web_Goto_Webpage.xml
|
Tabelle 17.11
Ereignisse für MovieClips und Schaltflächen
Ereignis
|
Beschreibung
|
Hinweis
|
Beim Darüberziehen
|
Mit gedrückter Maustaste über ein Objekt gehen.
|
Entspricht dem dragOver in ActionScript.
|
Beim Drücken
|
Maustaste auf einem Objekt klicken.
|
Entspricht dem press in ActionScript.
|
Beim Herausziehen
|
Mit gedrückter Maustaste aus einem Objekt gehen.
|
Entspricht dem dragOut in ActionScript.
|
Beim Loslassen
|
Maustaste auf einem Objekt loslassen.
|
Entspricht dem release in ActionScript.
|
Beim Loslassen außerhalb
|
Auf ein Objekt klicken und anschließend die Maustaste außerhalb des Objektes loslassen.
|
Entspricht dem releaseOutside in ActionScript.
|
Beim Rollout
|
Mit der Maus aus einem Objekt gehen.
|
Entspricht dem rollOut in ActionScript.
|
Beim Rollover
|
Mit der Maus über ein Objekt gehen.
|
Entspricht dem rollOver in ActionScript.
|
Beim Tastendruck
|
Die angegebene Taste drücken.
|
Die Angabe einer Taste ist erforderlich.
|
Tabelle 17.12
Ereignisse für Folien und Formulare (Bildschirme)
Ereignis
|
Beschreibung
|
Hinweis
|
allTransitionsInDone
|
Alle in einen Bildschirm hineinführenden Übergänge sind beendet.
|
Siehe auch Übergangsverhalten.
|
allTransitionsOutDone
|
Alle aus einem Bildschirm herausführenden Übergänge sind beendet.
|
Siehe auch Übergangsverhalten.
|
complete
|
Der Inhalt ist komplett geladen.
|
Siehe auch progress-Ereignis.
|
draw
|
Die Inhalte des Bildschirms werden neu gezeichnet.
|
|
focusIn
|
Der Bildschirm erhält den Fokus.
|
|
focusOut
|
Der Bildschirm verliert den Fokus.
|
|
hide
|
Der Bildschirm wird versteckt (unsichtbar gemacht).
|
Siehe auch reveal-Ereignis.
|
hideChild
|
Elemente im Bildschirm werden versteckt (unsichtbar gemacht).
|
Dieses Ereignis steht nur für Folien und nicht für Formulare zur Verfügung. Siehe auch revealChild-Ereignis.
|
keyDown
|
Eine Taste wird gedrückt.
|
|
keyUp
|
Eine Taste wird losgelassen.
|
|
load
|
Inhalte des Bildschirms werden neu erzeugt.
|
Siehe auch unload-Ereignis.
|
mouseDown
|
Ein Objekt des Bildschirms wurde mit der Maus geklickt.
|
|
mouseDownSomewhere
|
Die Maus wurde irgendwo unabhängig von irgendwelchen Objekten gedrückt.
|
|
mouseOut
|
Sobald der Mauszeiger den Bildschirm verlässt.
|
|
mouseOver
|
Sobald der Mauszeiger in den Bildschirm hinein gelangt.
|
|
mouseMove
|
Die Maus wurde bewegt.
|
|
mouseUp
|
Die Maus wurde über einem Objekt des Bildschirms losgelassen.
|
|
mouseUpSomewhere
|
Die Maus wurde irgendwo unabhängig von irgendwelchen Objekten losgelassen.
|
|
move
|
Der Bildschirm wird verschoben.
|
|
progress
|
Inhalt wird geladen.
|
Siehe auch complete-Ereignis.
|
resize
|
Die Größe verändert sich.
|
|
reveal
|
Der Bildschirm wird eingeblendet (sichtbar gemacht).
|
Siehe auch hide-Ereignis.
|
revealChild
|
Elemente in einer Folie werden eingeblendet (sichtbar gemacht).
|
Dieses Ereignis steht nur für Folien und nicht für Formulare zur Verfügung. Siehe auch hideChild-Ereignis.
|
unload
|
Inhalte des Bildschirms werden entfernt.
|
Siehe auch load-Ereignis.
|
17.4.2 Verhalten anpassen
Die vorhandenen Verhalten befinden sich innerhalb des Konfigurationsordners von Flash im Ordner Behaviors: Unter Windows XP ist dies normalerweise der Ordner C:\Dokumente und Einstellungen\[Benutzername]\Lokale Einstellungen\Anwendungsdaten\Macromedia\Flash MX 2004\de\Configuration\Behaviors, auf Mac OS X-Rechnern sollte sich der Ordner unter Users/[Benutzername]/Library/Application Support/Macromedia/Flash MX 2004/de/Configuration/Behaviors befinden. Dort passen Sie die Verhalten an oder fügen neue hinzu. Am leichtesten ist es, ein vorhandenes Verhalten im Behaviors-Ordner zu kopieren und dann anzupassen – dabei spielt der Dateiname nur eine untergeordnete Rolle, sofern er eindeutig ist und die Endung xml lautet.
Das folgende XML-Dokument beschreibt ein einfaches Verhalten zum Stoppen eines Movieclips. Dieses Verhalten ist übrigens nur dann im Verhaltensinspektor sichtbar, wenn ein Schlüsselbild (Frame), ein Movieclip oder eine Schaltfläche (Button) ausgewählt ist. Dies und die verfügbaren Ereignisse werden anhand der im class-Attribut aufgezählten Klassen bestimmt – bei fehlendem Attribut kann das Verhalten auf allen Objekten platziert werden. Außerdem kann es notwendig sein, dass Sie innerhalb des Verhaltensinspektors (Fenster • Entwicklungs-Bedienfelder • Verhalten) im Optionsmenü Neu Laden wählen. Denn Flash aktualisiert die Liste mit den Verhalten sonst nur bei einem Neustart der Entwicklungsumgebung.
Verhalten\Movieclip-Stop.xml
<?xml_version="1.0"?>
<!-- *********************************************************** -->
<!-- Sascha Wolter, www.flashforum.de / www.saschawolter.de -->
<!-- *********************************************************** -->
<flash_behavior version="1.0">
<!-- Hier werden das Verhalten und dessen Parameter definiert -->
<behavior_definition
dialogID="Stop Movieclip-dialog"
category="Movieclip"
name ="Movieclip stoppen"
class="frame, movieclip, button">
<properties>
<property id="target" default="this"/>
</properties>
<!-- Das Dialog-Fenster wird über die Dialog-ID verknüpft -->
<!-- Dialog-Fenster werden durch die XML nach UI-Funktionalität erzeugt (XUL) -->
<dialog id="Stop Movieclip-dialog" title="Movieclips stoppen" buttons="accept, cancel">
<grid>
<columns>
<column>
<rows>
<row align="center">
<vbox>
<label value="Wählen Sie den Movieclip aus, der gestoppt werden soll:"/>
<targetlist id="target" class="movieclip"/>
</vbox>
</row>
</rows>
</column>
</columns>
</grid>
</dialog>
<!-- Innerhalb des CDATA-Blocks wird der ActionScript-Code
festgelegt -->
<actionscript>
<![CDATA[
//Stop Movieclip Behavior
$target$.stop();
//End Behavior
]]>
</actionscript>
</behavior_definition>
</flash_behavior>
XUL
Für die Ermittlung der Parameter eines Verhaltens ist ein Dialogfenster erforderlich. Dieses wird innerhalb der Verhalten über eine XML-basierte Sprache definiert. Flash erzeugt anhand dieser Angabe dann eine Benutzeroberfläche (engl. User Interface, kurz UI). Dabei orientiert sich Macromedia an dem XUL-Standard (XML User Interface Language), der unter http://www.mozilla.org/projects/xul/xul.html beschrieben wird. Alternativ reicht auch die Angabe einer SWF-Datei als Dialog.
Hier klicken, um das Bild zu Vergrößern
Abbildung 17.8
Ein durch XUL generiertes Dialogfenster
|