Actions
Alle Actions kann man entweder in einem Keyframe oder für einen Button
oder auf Tastendruck vergeben (rechte Maustaste, Properties, Actions)
das nennt man auch Event-Handler. Ab Flash
5 kann man auch Filmsequenzen Actions zuweisen.
Die Actions werden durch anklicken des + Zeichens gewählt, mit dem
- Zeichen kann man sie wieder löschen.
Ab Flash 5 erscheinen die Actions im Bedienfeld Aktion,
welches man auch mit rechter Maustaste aufrufen kann.
In diesem Menu kann man oben links (kleiner schwarzer Pfeil) zwischen
Normalmodus und Expertenmodus umschalten.
Im Normalmodus erscheint je nach gewählter Action, die alle rechts
aufgelistet sind, ganz unten ein Menue, wo man gewissen Eingaben machen
kann.
Im Expertenmodus kann man per Texteingabe programmieren.
Man kann den Script mit Strg C kopieren und Strg V einfügen.
Stop und
Play
Film anhalten mit der Action Stop
Film abspielen lassen mit der Action Play
Go to
Action wählen Go to
Frame Nummer angeben, unten Control:
Go to and Play aktivieren oder deaktivieren
eventuell gewünschte Scene angeben
anstatt einer Frame Nummer kann man auch Label wählen, Vorausetzung
ist, man hat einen Keyframe zuvor einen Namen gegeben, (Keyframe, Properties,
Label)
mit Tell Target kann man auch die einzelnen
Frames eines Animations Symbols (Movie Clip) ansteueren
Load
/ Unload Movie
(Beispiel
Fla Datei downloaden)
Load Movie Action hat den Vorteil, daß man einzelne swf Movies im
Hauptfilm laden kann, dadurch kann man die Dateigröße reduzieren,
und es wird nur das geladen, was auch aufgerufen wird. So ließe
sich beispielsweise auch ein Hintergrundsound nachträglich laden.
keyframe oder button, rechte Maustaste, Properties
Actions, Load Movie, Namen des ...swf angeben, (wenn er nicht im gleichen
Ordner liegt,. Pfad oder URL angeben)
am Besten das impotierte movie hat die gleiche Größe, andernfalls
erscheint es in der linken oberen Ecke
Level:
Die Ebenen entsprechen nicht den bekannten Ebenen oder Layern. Die Ebenen
haben in Zusammenhang mit Load Movie eine ganz eigene Bedeutung. Will
man mehrere Filme gleichzeitig laufen lassen, muß jeder Film eine eigene
Ebene bekommen. Es kann jeweils nur ein Film in einer Ebene laufen. Ein
auf gleicher Ebene geladener Film ersetzt den schon laufenden Film.
Überschneiden sich mehrere geladenen Filme liegt der Film mit der
niedrigsten Nummer unten, während die anderen der Reihenfolge nach
darüber liegen.
Sonderfall Ebene0 der ganze Flash Film wird beendet und durch den geladenen
ersetzt. Es werden die Proportionen des ursprünglichen Films übernommen.
Man kann Filme mit ihren Zeitleisten und Bildern von anderer Stelle aus
ansteuern, um zu einem bestimmten Bild zu springen, siehe Ebenen
ansteuern.
Target:
Anstatt Level kann man auch Target wählen und hier den Instancenamen
eines Movieclip Symbols angeben.
Der Movieclip wird durch den swf Film ersetzt,
Die linke obere Kante des swf movies wird am Mittelpunkt der Intstance
ausgerichtet (zumindest so ungefähr).
Variables, dont send
durch diese Option werden die Variablen nicht mitgeladen
Unload Movie
Mit der Option "unload Movie" wird der zuletzt geladenen Film
wieder entfernt, wenn man kein level oder target definiert hat.
Load variables into location
Durch diese option , werden lediglich die Variablen eines Movieclips geladen,
außerdem kann man auch Variablen aus einer Textdatei laden, siehe
dazu die Beispieldatei textlade.fla
If
Frame is loaded
(Download bitte warten, der Film wird erst gestartet wenn alles geladen
ist)
Keyframe, recht Maustaste Properties, Actions, + Symbol
If frame is loaded
Scene und Frame Nummer angeben, auf dessen "cache load" gewartet
werden soll
(wahrscheinlich den letzten Frame der letzten Scene)
+ Symbol, gewünschte Action vergeben, wahrscheinlich Go to
"Go to and Play"-Feld anklicken, gewünschten Scene und Frame
Nummer wählen, wo der eigentliche Film startet
dann macht man im nächsten Frame einen keyframe mit der Action Go
to auf den ersten Frame des Films, also den Frame
wo die Action "If frame is loaded" enthalten ist, so läuft
der Film solange zwischen diesen beiden Frames hin und her, bis der Film
geladen ist.
(Beispieldatei runterladen)
eine besonders elegante Lösung bei großen Movies, ist ein Zähler,
der die Prozentzahl des geladenen Movies anzeigt,
hierbei erstellt man ein paar Keyframes am Anfang, die die verschiedenen
Prozentzahlen der Reihe nach anzeigen,
dann vergibt man jeweils die Action "If Frame is loaded" und
springt damit von einem keyframe der Anzeige zum nächsten, bis der
ganze Film geladen ist,
Tell Target
hat die einzige Aufgabe, die Timeline zu bestimmen die angesteuert
werden soll , mit Tell Target kann man Movieclips,
oder andere, mit der Load Movie Action
geladene, Flash movies ansteuern, (Beispiel
Fla Datei downloaden)
wofür braucht man das?
Man stelle sich vor man hätte einen Text der durch Maus rollover über
einen Button erscheint, beim rollover über einen anderen Button, erscheint
an gleicher Stelle ein anderer Erklärungstext (wie in meinem Rockmenue)
dazu erstellt man ein Moviesymbol mit mehreren Texten in verschiedenen Keyframes,
welche man auf Mausklick ansteuern kann. Also, Tell Target, Moviesymbol
ansteuern und dann Go to and play Frame1, frame2, frame3, dann erscheint
Text1 oder Text2 oder Text3, natürlich kann anstatt eines Textes auch
etwas anderes erscheinen.
das ganze nochmal langsam, zum Nachmachen
- Movie Symbol erschaffen,
- Edit Movie
- in der Timeline erstelle ich mir mehrere keyframes, in jedem keyframe
erscheint ein anderer Text oder ein anderes Bild
- jeden keyframe mit rechter Maustaste anklicken, Properties, Action,
stop
- zurück zum Hauptfilm Edit, Edit Movie
- Movie symbol an die gewünschte Stelle setzen
- Movie Symbol doppelklicken, bzw. rechte Mausaste, Properties, Instance
Name vergeben.
- Button erschaffen, rechte Maustaste, Properties, Action,+, Tell Target,
- dann steht da.:
On realease
begin tell target
end tell target
end on
- auf on realease klicken
und gewünschte Action,(z.b. mouse over) angeben
- begin tell target auf
gewünschte Instance die oben erscheint klicken, (siehe 7)
- derName erscheint dann unten im Fenster
- danach kann man oben auf das + Zeichen klicken und eine gewünschte
Actio vergeben z.B. Go to
- hier gibt man dann den gewünschten Frame des movie clips an, (siehe
3)
ACHTUNG; um mit dem gleichen button eine URL aufzurufen, muß man
folgendes beachten:
es genügt nicht, nach der Tell Target Action das + Zeichen anzuklicken
und Get Url zu wählen,
sondern man klickt auf end on,
dann wählt man die Action Go To (+ Zeichen) und wählt on release
anschließend wählt man dann Get URL,
logisch sonst würde die Url schon durch den mouse rollover Befehl
aufgerufen.
EBENEN
ANSTEUERN
um andere Ebenen anzusteuern, gelten die gleichen Regeln wie in Html
(relatives Referenzieren) z.B
2 Ebenen höher |
/ebene1/ebene2 |
eine Ebene zurück |
../ebene |
ein Symbol ist vom Hauptfilm
aus gesehen, eine Ebene höher, will man vom Symbol aus (edit, edit
movie) den Hauptfilm ansteuern geht man eine Ebene zurück
Sonderfall mit der Action Load movieclip geladene Filme, dort kann man
auch die Bezeichnungen _level0, _level1, _level2 usw. angeben, das entspricht
den Ebenen der geladene Filme _level0 ist der Hauptfilm (siehe
Load Movie)
(Beispiel
Fla Datei downloaden) Pfade.fla
Ab Flash 5 wird auch die Punkt Syntax verwendet, das heißt
anstatt Schrägstriche werden Punkte verwendet, genau, wie in Javascript.
Am Einfachsten kann man den gewünschten Pfad mit dem Zieleditor des
Actionsfenster einstellen. Ganz unten rechts befindet sich der Button
in Form eines kleinen Kreises mit Kreuz.
Dort kann man zwischen Punktsyntax und Schrägstrichen wählen,
außerdem kann man den Pfad relativ oder absolut angebeben. Es gibt
hier 2 Aliase _root bedeutet die oberste Filmebene oder Zeitleiste und
_parent bedeutet eine Ebene zurück. Hier ein Beispiel diese Action
wird einem Movieclip zugewiesen, welcher dann auf Mausklick den Hauptfilm
stoppt.
onClipEvent (mouseDown) {
this._root.stop();
}
this. steht hier anstatt
des Instanznamens und bedeutet, daß diese Aktion sich auf den Movieclip
selbst bezieht. Dann folgt oben erwähntes _root getrennt durch einen
Punkt, also befinden wir uns nun auf der Hauptfilmzeitleiste, die durch
die Aktion stop() gestoppt wird.
Ein Movieclip der in einem Movieclip eingebettet ist, könnte mit
_parent den Movieclip, der eine Ebene höher liegt ansprechen. Anstatt
der Aktion stop() in diesem Beispiel kann beispielsweise auch der Instanzname
eines anderen Movieclips hinter _root.
stehen, um diesen mit einer folgenden Aktion anzusprechen. Hier ein Beispiel,
wo anstatt, TellTarget die Aktion with verwendet wird.
onClipEvent (mouseDown) {
with (_root.quader) {
gotoAndStop (5);
}
}
Auch diese Aktion wurde einer Filmsequenz zugewiesen. mit with
(_root.quader) wird die Filmsequenz mit Instanznamen "quader"
angesprochen, welche im Hauptfilm eingebettet ist, gefolgt von der Aktion
gotoAndStop (5)
Call
(Beispiel
Fla Datei downloaden)
Call ist ähnlich der Actions Go to und TellTarget,
jedoch wird hier nicht der gesamte Inhalt des Keyframes geladen, sondern
lediglich, die in diesem Keyframe vergebene Action.
Call dient dazu Routinen also eine Reihe von Actions von verschiedenen
Stellen aus aufzurufen.
Man definiert gewünschte Actions in einem keyframe, (welcher sich
auch in einem Movie Clip Symbol befinden kann)
um diese Actions aufzurufen, wählt man die Action Call, und gibt
im Feld Frame den gewünschten Keyframe an
der Keyframe kann eine Zahl sein, oder der zuvor vergebene Name es Keyframes
(Properties, Label)
befindet sich der Keyframe in einem Movieclip, sieht die Schreibweise
so aus
Instancename:keyframe
if, else und if else
Ich beschreibe hier mal die Schreibweise für Flash 5
{ if (hier steht die Bedingung) {hier steht was passieren soll, wenn die
Bedingung erfüllt ist in geschweiften Klammern. Die Anweisungen werden mit ; abgeschlossen. Weitere Anweisungen können jeweils ein einer neuen Zeile hinzugefügt werden. } }
{ if (/:z==?10) {
/:x = /:x+1;
}
}
Im folgenden gibt es 2 Bedingungen im Sinne von das eine oder das andere.
Das Ganze in Klammern und die beiden Bedingen mit or verbunden. Ab Flash
5 kann man statt or auch || schreiben (der Strich liegt mit AltGr auf
der < Taste). Statt and kann man in Flash 5 auch && schreiben.
Beides entspricht der Javascript Syntax.
Dann gibt es 2 Anweisungen, die passieren, wenn eine der beiden Bedingungen
erfüllt ist. Einmal die y Position wird um -50 versetzt und die Variable
/:x wird um 1 erhöht. Diese beiden Anweisungen werden mit Strichpunkt getrennt.
Dann kommt else ins Spiel, also wenn keine der beiden Bedingungen erfüllt
sind, passiert das, was hinter else definiert ist. Man beachte was in
geschweiften Klammern steht und wie die Klammern verschachtelt sind.
{ if (_y>450 or z =10) {
_y = -50; /:x = /:x+1;
} else {
_y = _y+9;
}
}
Dann gibt es noch else if, was anstelle von else stehen kann. Nachdem die erste Bedingung abgefragt wurde, kann an durch else if eine weitere Bedinung definieren, die anschließend überprüftt wird.
Im Normalmodus oder der Scripthilfe oder auch in Flash 4 werden automatisch die richtigen Klammern beim Einfügen der Action gesetzt.
Ab Flash 5 können kleinere If Abfragen auch so geschrieben werden
x=Wert<9 ? 4 : 6 ;
Es bedeutet
Wert= Bedingung? das wird dem Wert zugewiesen wenn Bedingung erfüllt
ist : das wird dem Wert zugewiesen wenn Bedinung nicht erfüllt ist
Das entspräche folgender if Abfrage
if (Wert <9){
x=4;
}else{
x=6;
}
EVENT
HANDLER
Die ersten 6 Actions -Go to, Play, Stop, Toggle High Quality, Stop All
Sounds, and Get URL- sind alles was man braucht um einen interessanten
Flash Film zu gestalten. Damit ist der Film aber noch nicht interactiv.
Dazu braucht man die sogenannten Event Handler. Event Handler bestimmen
die Konditionen unter denen ein Ereignis stattfinden soll.
Es gibt 3 Arten
Mausaktivität auf Buttons hier unterscheidet
man zwischen rolling (roll over) ohne Mausklick und dragging Mausbewegung
mit gedrückter Maustaste, diese Eventhandler werden im Hauptfilm vergeben
nicht in den 4 Frames der buttons, Actions aus diesen Frames werden ignoriert
- Press ein
einzelener Mausklick besteht aus 2 Teilen herunterdrücken press und
wieder loslassen release
- Relase wird
ausgeführt wenn beides ausgeführt wird press und relase. Das ist der
Standard Event Handler für buttons
- Relase outside
über der Hit-Area Maustaste drücken, außerhalb der Hit-Area loslassen
- Roll Over
mit losgelassener Maustaste über die Hit-Area eines buttons gehen sollte
nicht dafür eingesetzt werden optische Veränderungen an buttons einzuleiten,
sonder roll over ist nur dazu da Actions einzuleiten
- Roll Out wenn
man mit losgelassener Maustaste die Hit-Area eines buttons verlassen
hat
- Drag Over
Maustaste wird gedrückt während man über der Hit-Area ist, Maus wird
aus der Hit-Area herausbewegt (immer noch mit gedrückter Maustaste),
Maus wird wieder zurück über die Hitarea bewegt (immer noch mit gedrückter
Maustaste) das ist etwas merkwürdig kann aber in einigen Spielen Anwendung
finden
- Drag Out maustaste
wird gedrückt während man über der Hit-Area ist, Maus wird aus der Hit-Area
herausbewegt (immer noch mit gedrückter Maustaste)
Tastendruck,
Keystroke Ereignisse auf Tastendruck
Die Vorgehensweise erscheint einigen vielleicht etwas verwirrend, da man
erst einen Button auf der Bühne plazieren muß, um den Keystroke Event
Handler auszuführen
- Einen neuen Layer erstellen
- einen Button dort plazieren
- Properties, Actions aufrufen (rechte Maustaste)
- + Zeichen wählen, On Mouse Event
- Keystroke anklicken, gewünschten Buchstaben im Feld eingeben z.B.
s
- On (Key: s)"diese Stelle
markieren
- + Zeichen und gewünschte Action aussuchen
Einige Besonderheiten sind zu beachten:
- Esc kann man nicht vergebem
- enter < > sollte man auch nicht nehmen da die für Programmierzwecke
reserviert sind, wenn man das trotzdem macht, sollte man das auf jeden
Fall mal im Browser testen, ob es geht
- Tastenkombinationen wie (strg + s) kann man nicht vergeben
- Groß- Kleinschreibung wird unterstützt, das nennt man auch Case sensitiv,
es gibt keine Möglichkeit das zu verhindern, also S und s brauchen jeweils
eine Action, man kann natürlich für beide die selbe Action ausführen
lassen, dann hätte man das gleiche Ziel erreicht, man muß es nur dann
2 mal machen
- wenn das Movie im Browser präsentiert wird muß es "focus" sein, das
heißt der User muß vorher mindestens einmal irgendwo im Flash Movie
mit der Maus geklickt haben
Keyframes (Event Handler)
die Actions hängen nicht vom User ab sondern werden ausgeführt
sobald der entsprechende Keyframe erreicht wird, Keyframes mit Actions
sollten einen eigenen Layer bekommen
- einen Layer mit ein paar Frames und Keyframes erschaffen
- in der Timeline in einem Keyframe Action aufrufen durch doppelklick
oder rechte Maustaste, Properties, Action
- + Zeichen (oben links) gewünschte Action wählen z.B. Go
To
- Keyframes mit Actions erkennt man an an dem kleinen a (in der Timeline)
PROPERTIES
(Eigenschaften)
mit der Action set properties kann man Symbolen bestimmte Eigenschaften
zuweisen, wie z.B. Transparenz, Position, Weite, Höhe, sichtbar / unsichtbar,
Rotation, Instanzname etc. (Beispiel
Fla Datei downloaden)
das Ganze wird durch einen Event Handler eingeleitet,
also kann es beispielsweise auf Mausklick erfolgen
- ein Movie Symbol erschaffen
(Taste F8)
- Instance name vergeben: Symbol rechte Maustaste, Properties, Instance
Name (unten), irgendeinen Namen eintragen
- einen button erstellen
(Taste F8)
- Action vergeben:
im Hauptfenster, Button rechte Maustaste, Action, +Zeichen anklicken,
Set Properties
Set:
gewünschte Eigenschaft auswählen
X position, Y position: |
Position |
Wert in Pixel, oben links ist 0 |
X scale, Y scale: |
Weite, Höhe |
Wert prozentual zum Hauptfilm |
Alpha: |
Transparenz |
Werte in Prozent, also 100 ist komplett undurchsichtig
|
Visibility: |
sichtbar, unsichtbar |
1 ist sichtbar, 0 ist unsichtbar, buttons in unsichtbaren
movieclips funktionieren nicht |
Rotation: |
Drehung |
Wert in Grad |
Sound buffer time: |
preload von Sound |
die Anzahl der Sekunden die verstreicht, bevor der
sound gestartet wird (preload), Standard ist 5 Sekunden |
Target:
hier den Instance Namen des Symbols angeben, welches seine Eigenschaften
ändern soll, (siehe Punkt2)
Value:
Wert angeben (siehe Erklärung bei Set)
- Links steht standardmäßig On Release, durch anklicken hat
man die Möglichkeit ein anderes Ereignis zu wählen (siehe
Event Handler für Mausaktivität)
GET
PPROPERTY
man kann nicht nur Eigenschaften vergeben, sondern auch welche abfragen
mit get property,
das ist nicht als Action vorhanden, aber man kann es per Hand eingeben
die Schreibweise ist
GetProperty ( target, _propertyname
)
Unter Target wird der korrekte Pfad zum Movie, Level oder Instance-Name
in Anführungszeichen angegeben,
Ebenen ansteuern, wie in html
GetProperty
|
Set Property
|
Eigenschaft von
|
Definition
|
_x
|
X Position
|
MC
|
der horizontale Abstand zwischen dem Mittelpunkt eines MovieClip
und der linken oberen Ecke der Bühne, in Pixeln
|
_y
|
Y Position
|
MC
|
der vertikale Abstand zwischen dem Mittelpunkt eines MovieClip
und der linken oberen Ecke der Bühne, in Pixeln
|
_width
|
|
MC, Movie
|
die Weite eines Objekts in Pixeln
(Beispiel
Fla Datei downloaden) (siehe properties)
|
_height
|
|
MC, Movie
|
die Höhe eines Objekts in Pixeln
|
_rotation
|
Rotation
|
MC
|
Drehung in Grad
|
_target
|
|
MC
|
ermittelt die genaue Schreibeweise, die man bei Tell Target einsetzt
|
_name
|
Name
|
MC
|
ermittelt den Instance Name
|
_url
|
|
MC, Movie
|
ermittelt den genauen Pfad zu einem .swf Movie, kann man dazu einsetzen,
daß der movie clip nur auf dem eigenen server angezeigt wird,
(sowas find ich aber ganz schön anstellerig)
|
_xscale
|
Weite
|
MC, Movie
|
die Weite eines Movie Clip instance (or movie) prozentual zur Weite
des Hauptfilms
|
_yscale
|
Höhe
|
MC, Movie
|
die Höhe eines Movie Clip instance (oder movie) prozentual
zur Höhe des Hauptfilms
|
_currentframe
|
|
MC, Movie
|
ermittelt die Zahl des momentanen Frames eines movie or a Movie
Clip instance. (also dort wo der Abspielkopf gerade steht)
(Beispiel
Fla Datei downloaden) (siehe get timer)
|
_totalframes
|
|
MC, Movie
|
ermittelt die Zahl aller Frames einer Timeline eines Movie Clip
(Beispiel
Fla Datei downloaden) (siehe get timer)
|
_framesloaded
|
|
Movie
|
ermittelt die Zahl aller frames die runtergeladen wurden
|
_alpha
|
Transparenz
|
|
der Wert der Durchsichtigkeit eines Movie Clip oder movie in Prozent,
dabei ist 100 komplett undurchsichtig und 0 komplett durchsichtig
(Beispiel
Fla Datei downloaden) (siehe properties)
|
_visible
|
Sichtbarkeit
|
MC, Movie
|
.1 ist sichtbar, 0 ist unsichtbar, buttons in unsichtbaren movieclips
funktionieren nicht
|
_droptarget
|
|
MC
|
ermittelt den Namen des letzten Movie Clips auf den ein Drag Movie
Clip abgelegt wurde (versteh ich selber noch nicht)
|
_highquality
|
High quality
|
Movie
|
Qualität eines Movies. 1=Low, 2=High, 3=Best.
|
_focusrect
|
Show focus rectangle
|
Movie
|
zeigt ein gelbes Rechteck um einen button, wenn er mit der TAB
Taste ausgelöst wird, Standard ist show, wenn der Wert auf
0 gesetzt wird, wird der upstate eines Buttons anstatt des gelben
Rechtecks angezeigt
|
_soundbuftime
|
Sound buffer time
|
Movie
|
die Anzahl der Sekunden die verstreicht, bevor der sound gestartet
wird (preload), Standard ist 5 Sekunden
|
.scroll
|
|
Text Field Variable
|
die oberste Zeile der sichtbaren Region einer Textfield Varialbe.
Diese Eigenschaft kann gelesen und gesetzt werden, beispielsweise
um die nächste Zeile anzuzeigen:
Set Variable: "meinText.scroll" = meinText.scroll+1
(Beispiel
Fla Datei downloaden)
|
.maxscroll
|
|
Text Field Variable
|
bestimmt die Anzahl der Zeilen, einer Textfield Variablen und zwar
wird der Wert untersten Zeile, der in der in der obersten Zeile,
der sichtbaren Region des Textfields angzeigt werden kann, herausgegeben.
(Beispiel
Fla Datei downloaden) (siehe scrolltext.fla)
|
Man kann Set property mit Get property kombinieren, um beispielsweise
die Weite eines Movie Clips zu verdoppeln, muß das Ganze so aussehen:
Set Property ("/testmc", X Scale)
= GetProperty ("/testmc", _x) * 2
DRAG MOVIE CLIP (Beispiel
Fla Datei downloaden) dragmovie.fla und dragmovie_5.fla
Symbol welches den Bewegungen des Mauszeigers folgt
- ein Movie Symbol erschaffen
(Taste F8)
- Instance name vergeben: Symbol rechte Maustaste, Properties, Instance
Name (unten), irgendeinen Namen eintragen
- in der Timeline keyframe rechte Maustaste, Properties, Action, +Zeichen,
Drag Movie Clip
- Target Instance Name des Movie Symbols angeben (siehe 2)
evt. lock mouse to center anklicken, damit das Symbol direkt auf dem
Mauszeiger liegt
Seit Flash 5 hat man noch ein paar mehr Möglichkeiten einen Drag
Movie Clip zu erstellen. Dabei kann man den Mauszeigerverschwinden lassen
und die Bewegung kann außerdem sehr dynamisch gestaltet werden.
Nähere Anleitungen findet ihr in der Beispieldatei
dragmovie_5.fla
DRAG MOVIE CLIP, welches
auf Mausklick gestartet wird,
also ein Symbol, welches man anklickt, mit gedrückter Maustaste verschiebt
und durch loslassen der Maustaste wieder ablegt
- Ein Movie Clip Symbol erschaffen
- rechte Maustaste, Properties Instance Name vergeben, z.b. drag-me
- Movie Clip Symbol, rechte Maustaste, Edit
- im Frame1 des Movie Clip Symbols einen button erstellen
- diesen button mit rechter Maustaste, Properties, Action, +Zeichen,
drag movie clip, (wir befinden uns immer noch im Edit mode des Movie
Clip Symbols)
- Einstellungen der Action:
start drag operation, wählen
unter Target /drag-me eintragen, bzw. Instance Name des Movie
Clip Symbols (siehe2)
- on release markieren
(linke seite) stattdessen, on press wählen (Event
Handler für Maus)
- end on markieren (linke
seite), +Zeichen, die Action: drag movie clip wählen,
stop drag operation wählen, hier muß on release als event handler gewählt
sein
VARIABLE
(Beispiel
Fla Datei downloaden)
eine Variable ist ein Container für einen Inhalt dessen Wert ermittelt
wird, während der Film läuft, der Container ist immer der gleiche,
der Inhalt kann sich ändern, er kann Zahlenwerte oder Buchstaben
enthalten, während der Film abläuft, kann man: aufzeichnen oder
speichern, was der User getan hat, wieviel Zeit verstrichen ist, welcher
Frame gerade läuft und und und (siehe Get
Properties)
Alles klar? Keiner hats kapiert, vielleicht hilft folgendes Beispiel:
man könnte eine Variable mit Namen xyz definieren die den
Wert 2 mal 3 enthält das wäre dann 6, genauso könnte man
aber auch eine Variable definieren die den Wert 2 mal die Weite einer
Filmsequenz enthält oder die Position oder was auch immer.
eine Variable mit Namen x, die global, also für den ganzen Film definiert
werden soll, schreibt man so /:x
anhand des folgenden Beispiels wird bei jedem Mausklick auf einen Button
einer Variablen ein Wert hinzugefügt (Beispiel
Fla Datei downloaden) klick_zahl.fla
- ein Textfeld erstellen,
- Name der Variablen eingeben: Textfeld, rechte Maustaste, Eigenschaften,
oben im Feld Variable schreiben wir x
- Schaltfläche erstellen
- Schaltfläche, (rechte Maus, Eigenschaften) Aktion, Set Variable,
folgende Werte eintragen Variable: x Value: x + 1
- so müßte die Aktion des buttons aussehen
On (Release)
Set Variable: "x" = x + 1
End On
anhand des folgenden Beispiels wird eine Varible definiert, die die horizontale
Position des Mauszeigers enthält
- zuerst erstellt man ein Drag Movie clip
- der Instancename des Movieclips in diesem Beispiel heißt dragme
- man vergibt in einem Keyframe (in diesem Beispiel im Hauptfilm) die
Action, Set Variable,
- unter Variable gibt man den Namen der Variablen an, z.B. /:x
- im Feld Value schreibt man
GetProperty ( "/dragme", _x
)
so wird die horizontale Position des Drag movie clips ermittelt, (siehe
Get Property) nicht vergessen den abc Button auf Expression zu setzten
(siehe unten Expression)
- um den Wert angezeigt zu bekommen, erstellen wir ein Textfeld,
rechte Maustaste, Properties, im Feld Variable (oben) gibt man den Namen
der Variablen ein, in unserem Beispiel /:x
Expression
String oder numerical Expressions sind eigentlich nur Teile des Actionsscript,
deren Wert ermittlet während der Film läuft, zum Beispiel, nehmen
wir mal an, man hat eine Variable y, die auf den Wert 3 gesetzt ist
in der Formel x = y + 1 ist die rechte Seite "y + 1" der Expression (Audruck),
dessen Wert 4 errechnet wird.
Man kann alle mathematischen Funktionen in einem Actionscript ausführen
lassen.
abc Button
String und Expression
In der Action Dialogbox gibt es einen abc Button (string), den man umschalten
kann auf ein Symbol mit 2 Querstrichen (expression)
Ab Flash 5 ist im Bedienfeld Aktion unten
eine anklickbare Schaltfläche dahinter steht Expression.(erscheint
bei entsprechend ausgewählter Action) Ohne Haken entspricht es dem
abc button string mit Haken wird es auf Ausdruck gestellt.
Dazu folgendes Beispiel: Wenn ich beispielsweise 2+3 im Wertefeld eingebe,
so könnte das Ergebnis 5 sein, oder es könnte 2+3 erscheinen.
Bei 5 würde es sich um "Ausdruck" handeln. Die beiden Zahlen
werden als Werte angesehen, die ausgerechnet würden..
Bei 2+3 wäre es "Zeichenfolge, string". Die beiden Zahlen
würden wie Buchstaben angesehen.
will man ein String Expression innerhalb einer Expression haben, muß
man ihn in Anführungszeichen setzen
Expression
Editor
unter dem abc Button kann man auch den Expression Editor aufrufen, mit
dem man schnell verschiedene Funktionen erstellen kann,
hier einige Erklärungen aus der Flash
4 Bible (die Liste ist nicht vollständig und wird bei Gelegenheit
von mir erweitert und überarbeitet)
Function Name
|
Syntax
|
Beispiel
|
Definition
|
True
|
True
|
Set Property ("/ball", Visibility)=True
|
Boolscher Wert gleichbedeutent mit 1.
|
False
|
False
|
Set Property ("/ball", Visibility)=False
|
Boolscher Wert gleichbedeutent mit 0.
|
Newline
|
Newline
|
Set Variable: "name"="Andy" & Newline &
"Harris"
|
Fügt eine neue Zeile ein
(Beispiel
Fla Datei downloaden) (siehe scrolltext.fla)
|
GetTimer
|
GetTimer
|
Set Variable: "time"=Int (GetTimer / 1000)
|
Wert in Millisekunden, der Zeit die verstrichen seit der Film startete.
(Beispiel
Fla Datei downloaden)
|
Int
|
Int(Zahl)
|
Set Variable: "foo"=Int (5/2)
|
Ganzzahl einer variable, Zahl, oder expression. (z.B. die Ganzzahl
von beiden, 2.3 und 2.9 ist 2)
|
Random
|
Random(Zahl)
|
Set Variable: "würfel"=Int (Random (6)) + 1
|
Zufallszahl zwischen 0 und (Zahl). In diesem Beipspiel werden die
Zahlen des Würfels generiert.
Folgendes Beispiel: Set
Variable: "random" = Random (20) erzeugt Zahlen zwischen
0 und 19
(Beispiel
Fla Datei downloaden)
|
Length
|
Length (string)
|
Set Variable: "num_chars"=Length (name)
|
Anzahl der Zeichen in einem string.
|
Chr
|
Chr (asciiCode)
|
Set Variable: "character"=Chr (65)
|
ermittelt das Ascii Zeichen (Buchstabe) , aus einer numerischen
Angabe
(Beispiel
Fla Datei downloaden)
|
Ord
|
Ord (character)
|
Set Variable: ascii_num=Ord (A)
|
ermittelt den numerischen Wert eines Ascii Zeichens (also quasi
Chr umgekehrt :-)
|
Email Formular per CGI (Beispiel
Fla Datei downloaden) formular.fla
Wenn man ein E-mail Formular zum Absenden per CGI mit Flash erstellen
will, braucht man natürlich auch einen Provider, der einem diese
Möglichkeit zur Verfügung stellt.
Also müßt ihr euch zuerst einmal um dieses Problem kümmern
und euch die dementsprechende CGI Adresse besorgen. Diejenigen, die wie
ich, bei Strato sind können einfach weiterlesen.
- Textfelder erstellen
- Textfeld, rechte Maus, Properties, Variable, Namen vergeben zum Beispiel
für Name, Adresse, Email etc.
Die Formularfelder "email", "realname" und "subject"
haben eine Sonderrolle: Was der Besucher dort einträgt, wird als Absenderadresse,
Absendername und Thema der Mail verwendet, die an Sie abgeschickt wird.
- Button zum Absenden erstellen
- Button, rechte Maus, Properties, Action: Get URL
URL: CGI Adresse eintragen bei Strato lautet sie: /cgi-bin/mailmanager.pl
Variblen: Mit Post versenden
- Frame, rechte Maustaste, Properties, Action, Set Variable
Variable recipient
Value: hier deine email Adresse eintragen, z.b.
mail@on-design.de (Strato Kunden dürfen nur eine email bei
Strato verwenden)
- Man kann noch weitere Variablen, die die Funktion von "hiddenfields"
übernehmen, definieren, siehe Tabelle.
- Flash Film veröffentlichen und hochladen (bei Strato ins Hauptverzeichnis)
Weitere Variablen oder hidden Fields, wie sie bei Strato,
so auch bei vielen anderen CGI Scripten üblich sind.
|
Variable oder hidden field |
Wert oder value |
Erklärung |
subject |
Formularbetreffe bla bla |
die Betreffzeile der E-mail |
print_config |
email,realname |
die Eintragungen stehen nicht nur im Head sondern werden
auch noch einmal mit den anderen Formularinhalten im Body der Mail
wiedergegeben. (siehe Punkt 2) |
sort |
alphabetic |
die Formulardaten werden alphabetisch sortiert, sinnvoll
bei Bestellungen |
redirect |
http://www.ihredomain.de/bestätigung.html |
Gefällt einem die Bestätigunsseite des Providers
nicht, kann man hier auch eine eigene Seite anzeigen lassen, die nach
erfolgreichem Übersenden des Formulars angezeigt wird. |
required |
name,strasse,ort |
Diese Felder müssen ausgefüllt werden. |
print_blank_fields |
1 |
Auch leere Felder werden übertragen. |
Projektor
steuern mit fscommand (Beispiel
Fla Datei downloaden) fscommand.fla
mit der Action fscommand, kann man den Projector also das Programm welches
den Flashfilm abspielt: beenden, das Menue ausblenden, die wirkliche Filmgröße
herstellen, den Film als Fullscreen darstellen und eine exe Datei aufrufen.
Hier ein Auszug aus der Flash Hilfe. Das Ganze funktioniert übrigens
nicht wenn man vom Flash Programm aus, den Film testet.
Befehl |
Argumente |
Funktion |
quit
|
Keine
|
Schließt den Projektor.
|
fullscreen
|
true oder false
|
Mit true wird der Flash Player in den Vollbildmodus
gesetzt. Mit false wird der Player in die normale Menüansicht
zurückgesetzt.
|
allowscale
|
true oder false
|
Mit false wird der Player angewiesen, den Film nur
in dessen ursprünglicher Größe darzustellen. Mit
true wird der Film exakt in der Größe des
Players dargestellt.
|
showmenu
|
true oder false
|
Mit true werden sämtliche Kontextmenüelemente
aktiviert. Mit false werden alle Elemente des Kontextmenüs
außer der Option "Info zu Flash 5..." ausgeblendet.
|
exec
|
Pfad der Anwendung
|
Startet eine Anwendung also exe Datei aus dem Projektor heraus.
|
hitTest
Treffen und Abschiessen (Beispiel
Fla Datei downloaden) hitTest.fla
eineFilmsequenz.hitTest(x, y,
formmarkierer);
this.hitTest(_root. _xmouse,_root._ymouse, true);
hitTest fragt x und y Position ab, die in diesem Falle der Mausposition
entspricht.
_root ist ähnlich _level0 es wird die oberste Filmebene also der
Hauptfilm angesprochen.
true bedeutet, daß man die Filmsequenz wirklich berühren muß
und nicht nur den
unsichtbaren Begrenzungsrahmen, der jedes Objekt umgrenzt.
Andere Möglichkeit
this.hitTest(_root.ball)
Hier wird jetzt anstatt x und y der Instanzname einer anderen Filmsequenz
angegeben.
Allerdings ist hier wieder der unsichtbare rechteckige Begrenzungsrahmen
ausschlaggebend, anders gehts nur mit x y Koordinaten.
Datum abfragen
(Beispiel
Fla Datei downloaden) date.fla
Mit dem Date-Objekt kann man das Datum nach lokaler- (vom eigenen Rechner)
oder nach Weltzeit abfragen.
Zuerst muß eine Instanz des Date-Objekts erzeugt werden.
datum = new Date();
Dann kann man mit verschiedenen Methoden Tage, Monate, Jahre, Wochentage
und vieles mehr abfragen.
now = (datum.getDay());
Die verschiedenen Methoden sind in der Flash Hilfe aufgelistet.
Eine ausführlich erklärte Anleitung, wobei man beispielsweise
zu jedem Wochentag einen anderen Keyframe aufruft, findet ihr in meiner
Beispieldatei date.fla
Text
aus einer externen Datei laden (Beispiel
Fla Datei downloaden) texteinbinden.fla (text.txt,
text1.as, text2.as, text3.as)
Es gibt zwei Möglichkeite Text aus einer externen Datei zu laden.
1.Möglichkeit
Einmal über die Aktion #include="text.as"
Dabei wird ASCII Text der mit der Endung as abgepeichert wird in
ein Textfeld geladen.
Das Textfeld bekommt in den Textoptionen folgenden Einstellungen:
- dynamic text
- multiline
- wordwrap
- Html aktiviert (Flash 5 kann html 1 lesen) will man auf Schriftformatierungen
verzichten läßt man html deaktiviert
- Variable Name vergeben, der Name steht in der Textdatei am Anfang
gefolgt von einem Gleichheitszeichen, der Text selber wird in Anführungszeichen
eingeschlossen.
Des weiteren darf der Text in der Textdatei keine Zeilenumbrüche
und keine Anführungszeichen haben. Die Anführungszeichen aus
Html Tags müssen mit der suchen ersetzen Funktion des Texteditors
in einfache Anführungszeichen ersetzt werden.
Es besteht die Möglichkeit in diese as Datei Aktionen zu schreiben,
die im Flash Movie ausgeführt werden.
2.Möglichkeit
Eine andere Möglichkeit ist den Text über
loadVariablesNum ("Text.txt", 0); Dabei ersetzt der geladene
Text eventuell vorhandenen Text. Die Schriftformatierungen des Textfeldes
werden übernommen.
einzulesen. Der Text wird in einer Textdatei mit Endung txt abgelegt.
Am Anfang steht der Variablenname des Textfeldes gefolgt von einem Gleichheitszeichen.
Die Leerzeichen des Textes müssen durch + Zeichen ersetzt werden.
Weitere Textfelder werden mit dem kaufmännischem & verbunen z.B.:
text1=...... &text2=... etc. Dabei sind in diesem Fall text1 und text2
die Variablennamen der Textfelder. Weitere Textoptionen sind:
- Texteingabe
- eineZeile
- Variablenname vergeben
|