| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 138
| Malen
Ja, hallo erstmal, ich habe aus Spaß ein kleines Programm geschrieben, wo jemand mit "lineTo" schöne Dinge zeichnen kann. Alle Punkte werden sofort gezeichnet und außerdem in einem Array gespeichert. Auf Wunsch wird die Zeichenfläche gelöscht, und Flash zeichnet das Bild anhand der gespeicherten Koordinaten selbstständig neu. Daran kriege ich nur eine Sache nicht hin: Wenn man malt und zwischendurch absetzt, klappt das noch. Aber wenn Flash die Zeichnung nachmalt, verbindet es alle abgesetzten Punkte. Hat zur Lösung dessen jemand eine Idee? Vielen Dank!! |
| | |
| | #2 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Du kannst dir ja beim Absetzen in das Array einen Spezialeintrag schreiben. Wenn du dann beim Nachmalen bist, prüfst du bei jedem Punkt, ob es ein solcher Spezialeintrag ist, wenn ja, dann machst du ein moveTo zum nächsten Punkt, wenn nicht, ganz normal ein lineTo zum aktuellen Punkt.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 138
|
Hm. Daran habe ich u. a. auch gedacht. Aber ich wüsste so spontan nicht, wie ich das unterbringen sollte. Ich poste hier einfach mal den Code, dass man das sieht. (Auf der Bühne befinden sich lediglich die zwei Schaltflächen). ActionScript:
|
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
anstatt arx = []; ary = []; bessser ein etwas flexiblerer ansatz. z.b. // 1.kennzahl das kommando: // 0: parameter // 1: moveTo // 2: lineTo // 3: curveTo // // bei parameter 0: lines.push[kommando, linie color, line dicke, fläche color, fläche an/aus]; // bei parameter 1..3 lines.push[kommando,x,y, (x,y, ..)]; z.b. var lines=[]; lines.push[0, 0xff0000, 3, 0, false]; lines.push[1, 200,300]; lines.push[2, 400,300, 400,400, 200,300];
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (18-11-2007 um 18:07 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 138
|
Also da bin ich eher , muss ich sagen ...Also ich verstehe, wie es gemeint ist. Aber ich blicke nicht wirklich, wie ich das einsetze? Wie ich das sehe, muss ich die Parameter vorher definieren? Wie mache ich das? Mach es mir doch nicht so schwer, einen Tipp noch. |
| | |
| | #6 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Der nächste Tipp kann eigentlich nur die Lösung sein ... pack doch einfach in dem onMouseUp in deine beiden Arrays jeweils ein "absetzen". Und vor das lineTo in der losgehts Funktion packst du dann die Abfrage arx[j] == "absetzen" rein.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 138
|
Ich nehme jetzt mal Deinen wortwörtlichen Ansatz, soweit ich ihn richtig verstanden habe. Kleine Änderungen meinerseits führten zu Verschlechterungen. ActionScript:
|
| | |
| | #10 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
fast ![]() Natürlich musst du auch noch i hochzählen, wenn du einen neuen Eintrag gemacht hast, sonst wird das "absetzen" ja bei der nächsten Mausbewegung mit gedrückter Maustaste wieder überschrieben. Die abfrage nach dem "absetzen" im losgehts hast du ja jetzt drinn, aber ist es nicht einsichtig, dass sie allein nichts bringt??? Du brauchst natürlich noch ein else (guckst du mein erster Beitrag)
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |