Actionscript Kleine Programme Fragen & Aufgaben

Ähnliche Dokumente
Actionscript Kleine Programme Fragen & Aufgaben

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Greenfoot: Verzweigungen

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Funktionen in JavaScript

Programmieren lernen mit Visual Basic

Greenfoot: Schleifen. 1. Die for- Schleife

JAVA-Datentypen und deren Wertebereich

Processing Info zu Variablen und Bedingungen

AS2 Flash / ActionScript Übung 2 Stand: 26/06/06

Funktionen in JavaScript

Greenfoot: Schleifen. 1. Die for-schleife

Algorithmen und ihre Programmierung

In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.

Programmsteuerung mit PHP - if/else, elseif,switch

Programmierkurs Python I

Einführung in die Computerlinguistik

Übersicht Shell-Scripten

PROCESSING STRUKTUR UND INPUT. Created by Michael Kirsch & Beat Rossmy

Programmieraufgaben. 1. Hello World! Schreibe ein Programm, dass auf der Konsole den Text Hello World! ausgibt.

Programmieren mit Python

Schleifen: Immer wieder dasselbe tun

Übungsblatt 2. Java Vorkurs (WS 2017)

Kapitel 3: Variablen

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Umsetzung einer Klassenkarte in einer Programmiersprache

Objektorientierte Programmierung

Funktionen nur wenn dann

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Excel Funktionen durch eigene Funktionen erweitern.

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Access 2010 Programmierung Schleifen

Programmierkurs Python I

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife?

Arbeitsblatt 6: Programmierung geometrischer Figuren

1 - EIN NEUES GAMEGRID ANLEGEN

VORKURS INFORMATIK EINE EINFÜHRUNG IN JAVASCRIPT

Übungsblatt 2. Java Vorkurs (WS 2015)

Projekt 04: Einstieg in Actionscript: Bestimmung von π mit Monte-Carlo-Methode

Eine schnelle Processing-Einführung. von Thomas Rau

Probeklausur Informatik 2 Sommersemester 2013

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

GI Vektoren

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Aufgabenblatt 1. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Stand und Ausblick

Zahlenraten: Ein Spiel in Java.

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Der CodeBug. A) Erste Schritte. 1) Einleitung

Coole Spiele mit Scratch Lerne programmieren und baue deine eigenen Spiele

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Funktionen nur wenn dann

Ereignisse Auf Benutzereingaben reagieren

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Luftballons. Einführung. Scratch. Wir wollen ein Spiel machen, bei dem man Luftballons platzen lässt! Activity Checklist.

Greenfoot: Variablen. Nicolas Ruh und Dieter Koch

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

4D Progress Die Projektmethoden für diese Komponente erscheinen im Explorer auf der Seite Methoden unter Komponent-Methoden:

CADSTAR MRP-Link. MRP-Link ist erstellt von:

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Unterlagen. CPP-Uebungen-08/

Javakurs für Anfänger

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Projekt 3 Variablen und Operatoren

Linux und Shell-Programmierung Teil 6

Programmieren I + II Regeln der Code-Formatierung

System.out.println("TEXT");

Compitreff: Arbeitsblätter gestalten

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Probeklausur: Programmierung WS04/05

Javascript. Einführung in Javascript. Autor: Christian Terbeck Erscheinungsjahr:

Informatik I Übung, Woche 40

Aufgabe 1 (12 Punkte)

Aufgabe: Versuche zunächst, die Katze von links nach rechts bewegen zu lassen.

4.1 Aufbau und Eingabe von Formeln

AuD-Tafelübung T-B5b

Man kann bei der Deklaration einen Wert der Variablen angeben oder später den Wert zuweisen. Beide Befehlsfolgen leisten dasselbe:

PHP JavaScript Kapitel 4. Kommentare

Java I Vorlesung Imperatives Programmieren

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Schleifen in Javascript

Fachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog

Ein Array ist eine Liste mit Einträgen, fast wie eine Einkaufsliste. Man kann darin also mehr als einen Eintrag in eine einzige Variable speichern.

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Tutorial zum Umgang mit Scratch

(6) Verknüpfen der GUI mit dem Spiel

m-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Transkript:

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? var superzahl:number = 77; 2. Wann braucht es ein einzelnes Gleichheitszeichen, und wann das doppelte? Ein einzelnes Gleich ist eine Zuweisung, was rechts steht wird ausgerechnet und der sich ergebene Wert wird in der links stehenden Variable gespeichert Ein doppeltes Gleich ist ein Vergleich, also die Frage ob rechts und links davon derselbe Wert steht je nachdem ergibt das dann true oder false 3. Wofür ist meinezahl++ die Kurzform? meinezahl = meinezahl + 1; 4. Wofür steht der Operator &&, und wie genau benutzt man ihn? && steht für UND, dieser Operator kann nur zwischen zwei Wahrheitswerten stehen (die ggf. zuerst ausgerechnet werden). && ergibt true, wenn auf beiden Seiten true steht, andernfalls ergibt sich false 5. Welche drei Informationen müssen in der Klammer nach dem Schlüsselwort for angegeben werden? (Beispiel angeben) for (var i:number = 1; i <= 10; i++){... An erster Stelle wird die Zählvariable deklariert und auf ihren Anfangswert gesetzt an zweiter Stelle steht das Abbruchkriterium (wenn es false ergibt ist die Schleife zu Ende) an dritter Stelle steht, was nach jedem Durchgang passiert Das obige Beispiel fängt also bei 1 an zu zählen und erhöht i dann nach jedem Durchgang um 1, so lange bis 10 erreicht ist. Der Code- block in den geschweiften Klammern wird also zehnmal ausgeführt, die Zählvariable i entspricht immer dem momentanen Durchgang. 6. Welche Aufgabe haben geschweifte Klammern in AS- Code? Geschweifte Klammern fassen den zwischen ihnen stehenden Code zu einem Code- Block zusammen. Code innerhalb eines solchen Blocks wird von oben nach unten abgearbeitet esseidenn es sind weitere Blöcke eingeschlossen. Blöcke sind die wichtigste Organisationseinheit von Code, sie werden durch Einrückung verdeutlicht. Geschweifte Klammern gehören immer zu einer Verzweigung, Schleife oder Funktion. 7. Wieso sind sprechende Variablen- und Funktionsnamen wichtig? Damit man Code einfacher versteht sollte man Namen so wählen, dass der Variablenname schon ausdrückt, wofür der Wert steht, der Funktionsname schon klar macht, was diese Funktion tut. Gut geschriebenen Code kann man fast lesen wie normalen (englischen) Text, so behält man den Überblick und vermeidet Fehler. 8. Welche Konventionen gelten für Variablennamen? (mind. 3) camelcase (erstes Wort klein geschrieben, folgende Worte gross, keine Trennzeichen) Sonderzeichen vermeiden, auch Umlaute Abkürzungen vermeiden, esseidenn sie sind unmissverständlich lieber lange, verständliche Name als kurze, kryptische Namen sollten klarmachen, wofür diese Variable steht (also sprechend sein)

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. click_btn.addeventlistener(mouseevent.click, aufgabe1a); function aufgabe1a(e:mouseevent){ trace(eingabe1_txt.text); click_btn.addeventlistener(mouseevent.click, aufgabe1b); function aufgabe1b(e:mouseevent){ ausgabe_txt.text = eingabe1_txt.text; click_btn.addeventlistener(mouseevent.click, aufgabe1c); function aufgabe1c(e:mouseevent){ ausgabe_txt.text = eingabe1_txt.text +, + eingabe2_txt.text; click_btn.addeventlistener(mouseevent.click, aufgabe1d); function aufgabe1d(e:mouseevent){ var eingabe1:string = eingabe1_txt.text; var eingabe2:number = Number(eingabe2_txt.text); for(var i:number = 0; i < eingabe2; i++){ trace(eingabe1);

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. click_btn.addeventlistener(mouseevent.click, aufgabe2); function aufgabe2(e:mouseevent){ var eingabe1:number = Number(eingabe1_txt.text); var eingabe2:number = Number(eingabe2_txt.text); var zahlklein:number = eingabe1; var zahlgross:number = eingabe2; if(eingabe1 > eingabe2){ { zahlklein = eingabe2; zahlgross = eingabe1; for(var i:number = zahlklein; i <= zahlgross; i++){ if (i%3 == 0){ //Alternative: i=i+3 in der Schleife trace(i); 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 var zahl1:number = Math.random(); var zahl2:number = Math.random(); ausgabe_txt.text = ("zahl1 = " + zahl1 + "\nzahl2 = " + zahl2 + "\nmittelwert = " + (zahl1 + zahl2)/2); Aufgabe 4 Eine Flashanimation mit zwei Eingabetextfeldern soll beim Klicken auf eine Schaltfläche in einem dynamischen Textfeld folgende Ausgabe erzeugen: so oft 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 *.*.*.*.*. click_btn.addeventlistener(mouseevent.click, aufgabe4); function aufgabe4(e:mouseevent) { var eingabe1:number = Number(eingabe1_txt.text);

var eingabe2:string = eingabe2_txt.text; var ausgabe:string = ""; for (var i:number = 1; i <= eingabe1; i++) { ausgabe = ausgabe + eingabe2 + "."; ausgabe_txt.text = ausgabe; Aufgabe 5 * (Sternchen bedeutet 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. //Aufruf ohne Ereignis, also ganz zu Beginn (a) aufgabe5(null); //Aufruf, gekoppelt an Klick-Ereignis (b) click_btn.addeventlistener(mouseevent.click, aufgabe5); function aufgabe5(e:mouseevent){ for(var k:number = 1; k < 10; k++){ var ausgabe:string = ""; for (var i:number = 1; i <= k; i++) { ausgabe = ausgabe + k + "*"; trace(ausgabe); ausgabe = ""; for(var k:number = 1; k<= 10; k++){ ausgabe = ausgabe + "0-"; trace(ausgabe);

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. click_btn.addeventlistener(mouseevent.click, aufgabe6); function aufgabe6(e:mouseevent){ var gesamtesekunden:number = Number(eingabe1_txt.text); var ganzestunden:number = Math.floor(gesamteSekunden/(60*60)); var uebrigeminuten:number = gesamtesekunden%(60*60); var ganzeminuten:number = Math.floor(uebrigeMinuten/60); var uebrigesekunden:number = uebrigeminuten%60; ausgabe_txt.text = "h : m : s = " + ganzestunden + " : " + ganzeminuten + " : " + uebrigesekunden; 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 stage.addeventlistener(mouseevent.mouse_move, displaymousepos); function displaymousepos(e:mouseevent){ ausgabe_txt.text = "x: " + stage.mousex + "\ny: " + stage.mousey; ausgabe_txt.x = stage.mousex; ausgabe_txt.y = 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. var clickcount:number = 0; ausgabe_txt.text = "bisher wurde " + clickcount + " Mal geklickt"; click_btn.addeventlistener(mouseevent.click, countpress); function countpress(e:mouseevent){ clickcount++; ausgabe_txt.text = "bisher wurde " + clickcount + " Mal geklickt"; 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. var clickcount:number = 0; ausgabe_txt.text = "bisher wurde " + clickcount + " Mal geklickt"; click_btn.addeventlistener(mouseevent.click, countpress); function countpress(e:mouseevent){ clickcount++; ausgabe_txt.text = "bisher wurde " + clickcount + " Mal geklickt"; click_btn.addeventlistener(event.enter_frame, moveme); function moveme(e:event){ if (click_btn.x + 10 > (stage.width - click_btn.width)){ else { click_btn.x = 0; click_btn.x = click_btn.x + 10;

Aufgabe 8 (Stufe 3) * Damit es noch ein wenig schwieriger wird, soll sich der Clip aus der vorherigen Aufgabe jetzt auch nach oben und unten bewegen. Am besten wäre es, wenn er auch innerhalb der Bühne manchmal (zufällig) Richtung und/oder Geschwindigkeit ändert. Voila, schon haben wir ein kleines Spiel, ein bisschen wie Moorhuhn im Textfeld könnte der aktuelle Score angegeben werden. 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. Selbst ausprobieren, das Prinzip bleibt dasselbe. 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 click_btn.addeventlistener(mouseevent.mouse_over, aufgabe9); var jumpsize:number = 30; function aufgabe9(e:mouseevent){ click_btn.x = click_btn.x + (Math.random()*jumpSize*2)- jumpsize; click_btn.y = click_btn.y + (Math.random()*jumpSize*2)- jumpsize; jumpsize = jumpsize + 10;

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) var figure:movieclip = new MovieClip(); //oder Sprite addchild(figur); figur.graphics.linestyle(0,0xffffff,1); for (var k:number = 0; k < 11; k++) { figur.graphics.beginfill(0x000000,1); figur.graphics.moveto(0 + k * 50, 0); figur.graphics.lineto(50 + k * 50, 50); figur.graphics.lineto(0 + k * 50,50); figur.graphics.lineto(0 + k * 50, 0); figur.graphics.endfill(); 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): var figur:movieclip = new MovieClip(); //oder Sprite addchild(figur); figur.graphics.linestyle(0,0xffffff,1); for (var j:number = 0; j < 8; j++) {

for (var k:number = 0; k < 11; k++) { 0xffffff,1); if (j % 2 == 0) { else { figur.graphics.beginfill(0x000000,1); figur.graphics.beginfill(math.random() * figur.graphics.moveto(0 + k * 50,0 + j * 50); figur.graphics.lineto(50 + k * 50,50 + j * 50); figur.graphics.lineto(0 + k * 50,50 + j * 50); figur.graphics.lineto(0 + k * 50,0 + j * 50); figur.graphics.endfill(); 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). var figur:movieclip = new MovieClip(); //oder Sprite addchild(figur); var ncols:number = 30; var trianglewidth:number = Stage.stageWidth / ncols; var nrows:number = 30; var triangleheight:number = Stage.stageHeight / nrows; figur.linestyle(0,0xffffff,1); for (var row:number = 0; row < nrows; row++) { for (var col:number = 0; col < ncols; col++) { if (row % 2 == 0) { figur.graphics.beginfill(0x000000, 1);

1); else { figur.graphics.beginfill(math.random() * 0xffffff, figur.graphics.moveto(0 + col * trianglewidth, 0 + row * triangleheight); figur.graphics.lineto(trianglewidth + col * trianglewidth, triangleheight + row * triangleheight); figur.graphics.lineto(0 + col * trianglewidth, triangleheight + row * triangleheight); figur.graphics.lineto(0 + col * trianglewidth, 0 + row * triangleheight); figur.graphics.endfill(); 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); 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; Einfach in Flash ausprobieren Aufgabe 12 * Was für eine Form wird mit diesem Code gezeichnet? var figur:movieclip = new MovieClip(); //oder Sprite addchild(figur); figur.graphics.linestyle(5, 0x0000ff, 1); var xpos:number = 0; var ypos:number = 200; var ychange:number = 0; 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);

Einfach in Flash ausprobieren. Mit ähnlichem Code wie für die yposition könnte man auch z.b. die Farbe oder die Breite des Strichs zufällig verändern, dann bekäme man eine noch interessanter aussehende Linie. Wichtig dabei ist, dass man einen Teil der vorhergehenden Änderung in die nächste Änderung mit einbezieht (change = change*0.5 + Zufallskomponente), da komplett zufällige Änderungen zu abrupt sind und meist nicht gut aussehen.