Dienstag, 30.03.2004
Action!
Zweiter Tag des Flash-Unterrichts bei Matthias in der SAE. Nach der zügigen Einführung von gestern ging es heute mit einem Einstieg in Actionscript weiter, der Scriptsprache von Flash. Matthias zeigte uns die Event-Handler von Movieclips und verglich sie mit denen von Lingo/Director, die wir ja schon kennen. Ein Event-HandleronClipEvent(load) wird gleich anschaulicher, wenn man weiß, dass sein Lingo-Pendant on beginSprite me ist.Nach den Event-Handlern ging es mit ausgewählten Properties wie
_x und einigen Infos zu Kurschreibweisen weiter. Letztere sind uns von Javascript schon einigermaßen bekannt. Sachen wie zahl++; statt zahl = zahl + 1;.
Erste Übung heute: Drag’n'Drop. Zunächst ein paar Vorkenntnisse, worauf sich Actions bei einem Movieclip und einem Button beziehen, die man an unterschiedlichen Stellen notiert.
Drag’n'Drop ist in Flash, im Gegensatz zu Director, ziemlich einfach. Folgende Action auch einen Button gelegt:
on(press) {
this.startDrag();
}
on(release) {
stopDrag();
}
Sieht cool aus, ist es aber nicht: Da der Button sich selbst nicht kennt und sich auf die Ebene darüber bezieht, wird nicht der Button gedraggt, sondern die ganze Bühne. Lösung: Der Button muss noch in einen Movieclip gepackt werden, dann verschiebt der Button den übergeordneten Movieclip und die Bühne bleibt, wo sie ist.
Wir schrieben dann eine einfachere Variante, die ab Flash 5 funktioniert (einfacher, weil die Struktur flacher ist). Dabei verwenden wir keinen Button, sondern direkt einen Movieclip, der die onClipEvents mouseDown und mouseUp bekommt.
Problem dabei: Das Draggen »funktioniert« auch, wenn irgendwo auf der Bühne geklickt wird. Die Lösung ist eine kleine Kollisionsabfrage, die man mit hitTest realisiert (in Lingo: intersect). Bei der Gelegenheit gab uns Matthias ein paar Tips zum Actionscript-Dictonary (der Online-Referenz): Alles, was wir wissen wollen, steht nicht unter dem Buchstaben, den wir vermuten, sondern unter M wie Movieclip: »M wie ‘hitTest’.«
Dem hitTest wird noch ein auf »true« geschaltetes Shape-Flag mitgegeben, damit ein Kreis auch wirklich nur dann verschoben werden kann, wenn der Kreis angeklickt ist, und nicht bereits die Bounding-Box um den Kreis herum.
Matthias erklärte uns noch, weswegen wir bei startDrag ein »this« davor brauchen und bei stopDrag nicht.
Nach der Pause gab es massig Buchempfehlungen für unterschiedliche Einsatzbereiche: Von der Datenbank-Anbindung bis zum Game-Design, Referenzen und Tutorials. Ich überlege ja, ob ich mir u.a. das »Actionscript Cookbook« von ORA zulegen soll (das Opossum-Buch).
Die nächste Übung: Ein Mausverfolger. Das ist so einfach, ich kann’s nicht glauben! :-)
Soweit Actionscript für heute. In der restlichen Zeit befassten wir uns mit der Frage, welche Bild- und Ton-Formate idealerweise wie in Flash eingebunden werden (kurze Version: so hochwertig wie möglich, also TIFF und PNG für Bilder, WAV/AIFF für Sounds; Flash kümmert sich selbst um Kompression). In diesem Zusammenhang: Der Zauberstab ist in Flash eine nette Sache. Damit kann man sehr schnell solche Dinge machen:
Zu sehen auf der Seite des Täuschungskünstlers Werner Fleischer, www.wernerfleischer.de (eine Site von Matthias’ Gameworkern).
Zum Abschluss des heutigen Tages gab es noch einige Infos zu den Publish-Settings und zum Streaming von Flash (für die Ausgabe als Video, oder wenn etwas ohne Preloader gestreamt werden soll, muss man auf der Hauptzeitleiste animieren).
Eine Hausaufgabe bis nächste Woche gab’s auch noch: Multi-dimensionales Tweening, noch kein Actionscript.
»Und wenn Ihr wollt, dass Euer Code so cool eingerückt ist wie meiner, dann drückt auf ‘Auto-Format’.«
Erschienen am Dienstag, 30.03.2004 @ 18:11
| Kommentare deaktiviert
Tags: flash, SAE
