Oder "Wie baue ich
ein ansprechendes Menü, ohne die ressourcenfressenden Tweenings einzusetzen"
ActionScript
![]()
Weiter unten wird der Aufbau vom MC "zeichner"
und die Buttons-Aktionen erklärt.
![]()
![]()
![]()
MC "zeichner"
![]()
Der MC "zeichner" ist in unserem Film für die Animation und die
Kurvendarstellung verantwortlich. Er besteht aus 3 Keyframes.
Keyframe 1:
| Set Variable: "div" = (div > 0 and t < 1 or t = 0) * 0.01 - (div < 0 or t = 1) * 0.01 | |
| Set Variable: "t" = t + div | |
|
Call ("bezier") |
|
|
Set Property ("/ball", X-Position) = X |
|
|
Set Property ("/ball", Y-Position) = Y |
|
|
Set Property ("/point", X-Position) = X |
|
|
Set Property ("/point", Y-Position) = Y |
|
|
Duplicate Movie Clip ("/point", "/point" & (t * 100), (t * 100)) |
Erklärung:
Keyframe 2 enthält nur die Anweisung "Go to and Play (1)", um eine Schleife zu erzeugen.
Keyframe 3 "bezier": In diesem Frame ist die Kurvenformel enthalten.
|
1
|
Set Variable: "x1" = GetProperty ("/P1",_x) |
|
2
|
Set Variable: "x2" = GetProperty ("/P2",_x) |
|
3
|
Set Variable: "x3" = GetProperty ("/P3",_x) |
|
4
|
Set Variable: "x4" = GetProperty ("/P4",_x) |
|
5
|
Set Variable: "y1" = GetProperty ("/P1",_y) |
|
6
|
Set Variable: "y2" = GetProperty ("/P2",_y) |
|
7
|
Set Variable: "y3" = GetProperty ("/P3",_y) |
|
8
|
Set Variable: "y4" = GetProperty ("/P4",_y) |
|
9
|
Set Variable: "X" = (((1 - t) * (1 - t) * (1 - t)) * x1) + ((3 * t) * ((1 - t) * (1 - t)) * x2) + (((3 * (t * t)) * (1 - t)) * x3) + ((t * t * t) * x4) |
|
10
|
Set Variable: "Y" = (((1 - t) * (1 - t) * (1 - t)) * y1) + ((3 * t) * ((1 - t) * (1 - t)) * y2) + (((3 * (t * t)) * (1 - t)) * y3) + ((t * t * t) * y4) |
Erklärung:
In den Zeilen 1 bis 8 werden die Variablen deklariert, die für die Formel notwendig sind. Den Variablen werden X- bzw. Y-Koordinaten der MC's zugewiesen (von P1 bis P4). In den Zeilen 9 ud 10 werden die ermittelten Variablenwerte in die Formel eingesetzt. Ja, ich weiß, die Formel sieht jetzt noch wilder aus, als auf dem Bild :) Man könnte die Zeilen vereinfachen, wenn man z.B eine Variable deklariert, die den Wert (1-t) zugewiesen bekommt. Die errechneten X- und Y-Werte (Zeilen 9 und 10) werden im Keyframe1 gebraucht. Wenn man etwas genauer die Kurve betrachtet, sieht man, daß die einzelnen Punkte an einer Stelle der Kurve dichter beieinander liegen. Dieser Punkt dürfte wohl der Scheitelpunkt der Kurve sein :).
![]()
![]()
![]()
Buttons in den MC's (P1-P4)
![]()
Hier wird der AS-Code für die Buttons in den Begrenzungs-MC's (P1-P4) erklärt.
| 1 | On (Press) | Hier wird bestimmt, was passieren soll, wenn man auf einen der Punkte klickt |
| 2 | Start Drag ("/P1", lockcenter) | Es wird eine Ziehoperation gestartet ("Schwester,... Skalpel und Tupfer... und absaugen, bitte" :) ) |
| 3 | End On | |
| 4 | On (Release) | Was passiert, wenn die Maustaste losgelassen wird? |
| 5 | Stop Drag | Ziehoperation beenden ("Zeitpunkt des Todes...") |
| 6 | End On |
Ich hoffe, es ist klar, daß der Code oben in den MC "P1" gehört :) Für die anderen MC's sollte der Code abgeändert werden (ist besser :) )
Einige werden sich fragen, was nun mit den restlichen Buttons los ist? Nun ja, damit werden einfach die vorher von mir festgelegten Werte den X- bzw. Y-Koordinaten der Begrenzungs-MC's zugewiesen.
![]()
![]()
![]()
So, das ist es gewesen. Oder hab
ich was vergessen? Manch einer wird wohl sagen, daß es zu aufwendig ist,
aber versucht es erst mal mit Tweening und dann nach dieser Methode zu machen
- Ihr werdet den Unterschied merken :) Vor allem, wenn es darum geht, die Bewegungskurve
dynamisch zu verändern oder eine "Beschleunigung" einzubauen.