Hallo allerseits
Hier schreibt ein Anfänger.
Ich wollte in Flash einen Line zwischen zwei Punkten zeichnen lassen. Nebenbei soll die auch noch anti-aliased sein, aber darum dreht sich meine Frage nicht. Das ist eine Uni-Übung und irgendwas muss ich ja auch noch selber leisten.
Im Fenster wird ein Gitter ausgegeben. Beim ersten Klick wird ein Kästchen eingefärbt. Beim zweiten Klick soll wieder das darunter liegende Kästchen eingefärbt werden und zusätlich eine Linie vom ersten zum zweiten Kästchen gezeichnet werden.
Klingt einfach, oder?
Die andere Methode, die hier eine Rolle spielt:
Die Kästchen werden einwandfrei gefärbt, aber es wird keine Linie gezeichnet, stattdessen kommt eine Fehlermeldung:
Wenn ich statt start.x /y und end.x/y irgendwelche Werte einsetze, zeichnet er.
Jetzt die eigentlichen Fragen:
1.) Wie bekomme ich von einem Punkt die X und Y Koordinate? Weil FlashDevelop es mir anbot, habe ich start.x versucht. war das falsch?
2.) Liegt der Fehler in der Methode ClickHandler? Wie kann ich dort der Methode DrawLine einen Wert übergeben, sodass er ihn auch annimmt?
Ich hoffe, dass sich meine Fragen mit endlichem Aufwand lösen lassen.
Entschuldigt, falls es zu ungenau war.
und Danke im voraus
ISO
Hier schreibt ein Anfänger.
Ich wollte in Flash einen Line zwischen zwei Punkten zeichnen lassen. Nebenbei soll die auch noch anti-aliased sein, aber darum dreht sich meine Frage nicht. Das ist eine Uni-Übung und irgendwas muss ich ja auch noch selber leisten.
Im Fenster wird ein Gitter ausgegeben. Beim ersten Klick wird ein Kästchen eingefärbt. Beim zweiten Klick soll wieder das darunter liegende Kästchen eingefärbt werden und zusätlich eine Linie vom ersten zum zweiten Kästchen gezeichnet werden.
Klingt einfach, oder?
Code:
private function ClickHandler(event:Event):void {
var rect:Point = new Point(
Math.floor(mouseX / cellWidth),
Math.floor(mouseY / cellHeight)
);
CountClicks += 1;
if (CountClicks % 2 == 1) {
DrawPixel(rect, 1);
var oldRect:Point = new Point(
Math.floor(mouseX / cellWidth),
Math.floor(mouseY / cellHeight)
);
}else {
DrawPixel(rect, 1);
DrawLine(oldRect, rect);
}
}
Die andere Methode, die hier eine Rolle spielt:
Code:
private function DrawLine(start:Point, end:Point):void {
canvas.graphics.lineStyle(2, 0x000000, 100);
canvas.graphics.moveTo(start.x, start.y);
canvas.graphics.lineTo(end.x, end.y);
}
Die Kästchen werden einwandfrei gefärbt, aber es wird keine Linie gezeichnet, stattdessen kommt eine Fehlermeldung:
Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
Wenn ich statt start.x /y und end.x/y irgendwelche Werte einsetze, zeichnet er.
Jetzt die eigentlichen Fragen:
1.) Wie bekomme ich von einem Punkt die X und Y Koordinate? Weil FlashDevelop es mir anbot, habe ich start.x versucht. war das falsch?
2.) Liegt der Fehler in der Methode ClickHandler? Wie kann ich dort der Methode DrawLine einen Wert übergeben, sodass er ihn auch annimmt?
Ich hoffe, dass sich meine Fragen mit endlichem Aufwand lösen lassen.
Entschuldigt, falls es zu ungenau war.
und Danke im voraus
ISO