AW: Wer kennt diesen effekt??
Hallo,
kein Problem, dann spiele ich mal Mentor und wir lösen das gemeinsam. Bin allerdings in der Arbeit und erst am Abend wieder "frei". Kann also sein, dass mal zwischendurch eine größere Lücke entsteht.
1. Überlegung: Flash benötigt zunächst einmal Informationen, um etwas ausführen zu können. Im konkreten Fall handelt es sich um
- die Zielpositionen, also die Kontur der Buchstaben
- die Objekte, die sich bewegen sollen
- die Positionen, an denen diese Objekte zunächst auftauchen sollen
- die Art, wie die Bewegung zu erfolgen hat
- wann die Bewegung endet
Prinzipiell können diese Informationen ausgelesen, errrechnet oder zugewiesen werden. Wir könnten sie auslesen, wählen aber den einfacheren Weg des händischen Zuweisens
2. Zu den Zielpos:
am besten zeichnet man einen Buchstaben an die Stelle, an der man ihn haben möchte. Anschließend setzt man einzelne Punkte solange, bis man damit zufrieden ist. Bei den Punkten handelt es sich sinnvollerweise um eben dieselben Objekte, die man später auch animiert (z.B.: Rechteck 4 x 4 Pixel, weiß, umwandeln in mc, Registrierungspunkt mittig, beliebiger Bibliotheksname, Verknüpfungs- bzw. Exportname "mcRecht" - wichtig für den späteren Zugriff per AS). Das Auslesen lässt sich übrigens auch über PS automatisieren, aber das ist ein anderes Thema.
Neue Ebene in _root, umbenennen in "actions", sperren, Scripteditor auf diesen Frame fixieren, Script schreiben (bitte nur Frame Scripts):
- Erstelle ein Array
- Speichere die Positionen der eben auf die Bühne gezogenen MCs (Achtung: mehrdimensionales Array; alternativ: Import Point-Klasse und als Punkt)
- Lösche die MCs von der Bühne
- Alternativ: for in-Schleife liest alle Pos aus, setzt die eingefügten mcs auf eine Tiefe > 0 und löscht sie (spart Handarbeit)
3. Zu bewegende Objekte:
- erledigt ducrh Verknüpfungsnamen
4. Startpos und Speichern Zielpos:
- ermittle sooft eine Zufallspos außerhalb des Screens, wie Elemente im Array sind
- ermittle pro Objekt eine Zufallszahl entsprechend Array-Länge
- speichere das Element, das sich im Array an der Indexposition[Zufallszahl] befindet, in einer jeweils einem Objekt zugewiesenen var
- lösche den betreffenden Index im Array
Erstmal soweit. Wie sieht Dein Code aus?