Verständnisfragen 1. Eine Variable des Typs Number mit Namen superzahl soll deklariert werden und den Wert 77 zugewiesen bekommen. Wie sieht der Code aus? 2. Wann braucht es ein einzelnes Gleichheitszeichen, und wann das doppelte? 3. Wofür ist meinezahl++ die Kurzform? 4. Wofür steht der Operator &&, und wie genau benutzt man ihn? 5. Welche drei Informationen müssen in der Klammer nach dem Schlüsselwort for angegeben werden? (Beispiel angeben) 6. Welche Aufgabe haben geschweifte Klammern in AS- Code? 7. Wieso sind sprechende Variablen- und Funktionsnamen wichtig? 8. Welche Konventionen gelten für Variablennamen? (mind. 3)
Textausgaben In diesen Aufgabenstellungen geht es meist darum, mit einem Programm bestimmte Ausgaben zu erzeugen die dann entweder in das Anzeigefenster trace( Hallo ) - oder in ein dynamisches Textfeld textfeldname.text = Hallo - geschrieben werden. Oft soll die Ausgabe in Abhängigkeit von Werten in Eingabetextfeldern oder Klicks auf eine Schaltfläche erfolgen sorge also jeweils dafür, dass entsprechende Instanzen existieren, z.b.: Aufgabe 1 Erstelle eine Flash- Datei mit den oben gezeigten Elementen (zwei Eingabetextfelder, ein dynamisches Textfeld und ein MovieClip) und Instanznamen. Beim Klicken auf den MovieClip (click_btn) wird die Eingabe a) aus eingabe1_txt in der Konsole (mit trace) ausgegeben b) aus eingabe1_txt in ausgabe_txt ausgegeben c) aus beiden Eingabefeldern in ausgabe_txt ausgegeben, mit Komma dazwischen d) aus eingabe1_txt so oft in der Konsole (mit trace) ausgegeben, wie die Zahl in eingabe2_txt (muss in Number umgewandelt werden) angibt. Aufgabe 2 Schreibe ein Programm, welches alle durch 3 teilbaren Zahlen zwischen zwei in Textfelder eingegebene Zahlen ausgibt, wenn man auf eine Schaltfläche klickt. Hinweis (Erweiterung): Vielleicht weiss man nicht, welche der beiden eingegebenen Zahlen die kleinere ist das Programm soll aber in beiden möglichen Fällen funktionieren. Aufgabe 3 Programmiere eine Flashanimation, welche beim Drücken einer Schaltfläche (am besten ein MovieClip) zwei Zufallszahlen (zwischen 0 und 1) erzeugt und dann die erzeugten Zahlen, sowie deren Mittelwert in einem dynamischen Textfeld ausgibt, am besten je in einer Zeile Hinweis: \n in einem String bewirkt einen Zeilensprung Aufgabe 4 Eine Flashanimation mit zwei Eingabetextfeldern soll beim Klicken auf eine Schaltfläche in einem dynamischen Textfeld folgende Ausgabe erzeugen: sooft wie im ersten Textfeld steht soll die Eingabe im zweiten Textfeld gefolgt von einem Punkt ausgegeben werden Beispiel: Bei Eingabe von 5 und * wird folgende Ausgabe erzeugt *.*.*.*.*.
Aufgabe 5 * (Sternchenaufgaben sind etwas schwieriger und optional) Schreibe ein Programm, das folgende Ausgabe erzeugt: 1* 2*2* 3*3*3* 4*4*4*4* 5*5*5*5*5* 6*6*6*6*6*6* 7*7*7*7*7*7*7* 8*8*8*8*8*8*8*8* 9*9*9*9*9*9*9*9*9* 0-0- 0-0- 0-0- 0-0- 0-0- 0- Diese Ausgabe soll im Ausgabefenster erscheinen, und zwar (a) gleich beim Starten des Programms und (b) nochmal, wenn auf eine Schaltfläche geklickt wird. Beachte: Bei 0 wird kein Stern (*) sondern ein Minuszeichen (- ) ausgegeben. Aufgabe 6 * (Sternchen bedeutet optional) Erstelle ein Programm, das die Anzahl von Sekunden (können per Textfeld eingegeben werden) in Stunden, Minuten und Sekunden umwandelt. Das Ergebnis soll in einem Textfeld ausgegeben werden, mit Doppelpunkten zwischen den Zeitangaben Beispiel: Eingabe 111 à Ausgabe 0 : 1 : 51 (st : min : sek) Bemerkung: Mit a%b wird der ganzzahlige Rest bei der Division von a durch b berechnet, so ist beispielsweise 73%60 = 13. Aufgabe 7 * Programmiere eine Flashanimation, welche in einem Textfeld (kein Rahmen, keine Hintergrundfarbe, kleine Schrift) die x- und y- Koordinate des Mauszeigers angibt. Sorge dann dafür, dass das Textfeld immer an diese Koordinaten geschoben wird, so dass die Koordinaten immer direkt neben der Maus angezeigt werden. Hinweis AS2: benutze das Ereignis onmousemove und die Eigenschaften _root._xmouse, bzw. _root._ymouse Hinweis AS3: benutze MouseEvent.MOUSE_MOVE und die Eigenschaften stage.mousex, bzw. stage.mousey
MovieClips Bei diesen Aufgaben geht es hauptsächlich darum, mit AS- Code die Eigenschaften von MovieClips zu manipulieren wie ja bereits aus der Punkt- Aufgabe und der Interaktiven Umgebung bekannt. Auch für jedwedes Spiel ist dies eine der wichtigsten Anwendungen von AS- Code. Natürlich muss man wieder dafür sorgen, dass entsprechende Instanzen zur Verfügung stehen. Aufgabe 8 (Stufe 1) Programmiere eine Flashanimation, welche beim Drücken einer Schaltfläche in einem Textfeld ausgibt, wie oft schon auf den MovieClip gedrückt wurde. Aufgabe 8 (Stufe 2) Sorge dafür, dass sich der MovieClip aus der vorigen Aufgabe automatisch von links nach rechts über die Bühne bewegt (d.h. bei jedem ENTER_FRAME wird die x- Koordinate erhöht). Verhindere ausserdem, dass der Clip nach rechts aus dem Bild verschwindet, z.b. könnte er ganz nach links gesetzt werden (oder sich jetzt nach links bewegen), wenn er am rechten Rand angekommen ist. Das Textfeld aus der vorherigen Aufgabe soll weiterhin angeben, wie oft man auf den Clip geklickt hat. Aufgabe 8 (Stufe 3) * Jetzt gäbe es noch viele Möglichkeiten zur Erweiterung, z.b. mehrere Clips, die man treffen (klicken) muss, grosse und kleine, schnelle und langsame, welche die Minuspunkte geben... Man könnte diese zusätzlichen Schwierigkeiten auch auf mehrere Level verteilen, so dass es immer ein wenig schwieriger wird, sobald man 10 Punkte gesammelt hat. Aufgabe 9 Eine Schaltfläche soll um einen zufällig gewählten Wert (+/- 30 Pixel, horizontal und vertikal) verschoben werden, sobald man mit der Maus auf sie zeigt. Erweiterung *: nach jedem Sprung wird die mögliche Verschiebung um 10 Pixel grösser
Zeichnen Bei diesen Aufgaben wird mit AS- Befehlen gezeichnet, wobei die benutzten Koordinaten, Farben, und sonstige Werte oft erst ausgerechnet werden. Aufgabe 10 (Stufe 1) Schreibe ein Programm, das die folgende Figur zeichnet (11 Dreiecke in einer Reihe, je 50 Pixel hoch & breit) Aufgabe 10 (Stufe 2) Erweitere das Programm (es braucht eine weitere Schleife), so dass diese Figur gezeichnet wird (es sind 8 Reihen a 11 Dreiecke): Aufgabe 10 (Stufe 3) * Noch schöner wäre es, wenn das Programm so funktionieren würde, dass der vorhandene Platz (Höhe und Breite der Bühne) immer komplett mit dem Dreiecksmuster ausgefüllt werden würde, wobei man zu Beginn in zwei Variablen festlegt, wie viele Zeilen und Spalten das Muster haben soll (hier 30 x 30).
Aufgabe 11 Was für eine Form wird mit diesem Code gezeichnet? for (var i:number = stage.stagewidth/2; i > 0; i=i-10) { } var figur:movieclip = new MovieClip(); //oder Sprite addchild(figur); var figur.graphics.linestyle(3,0x000000,1); figur.graphics.beginfill(math.random()*0xffffff, 0.3); figur.graphics.drawrect(-i,-i,2*i, 2*i); figur.graphics.endfill(); figur.x = stage.stagewidth/2; figur.y = stage.stageheight/2; Aufgabe 12 * Was für eine Form wird mit diesem Code gezeichnet? var xpos:number = 0; var ypos:number = 200; var ychange:number = 0; var figur:movieclip = new MovieClip(); //oder Sprite addchild(figur); figur.graphics.linestyle(5, 0x0000ff, 1); figur.graphics.moveto(xpos, ypos); while (xpos < Stage.stageWidth) { } ychange = ychange*0.5 + (Math.random()-0.5)*10; ypos = ypos + ychange; xpos = xpos + 5; figur.graphics.lineto(xpos, ypos);