Linie Zeichnen

Danjal

Grünschnabel
Hallo,

ich hätte eine Frage zu Flash. Ich versuche die ganze Zeit eine Animation zu erstellen in der mit Hilfe einer Linie folgender Kreis gezeichnet wird. Man soll in der Animation sehen wie dieses Gebilde erst entsteht. Egal ob jetzt Flash 5 oder Flash MX

Ich hab mir überlegt es mit einem Bewegungstween + Pfad zu erstellen, nur wie mach ich es, dass die Linie welche schon abgearbeitet wurde farbig wird?
 

Anhänge

  • kurve.jpg
    kurve.jpg
    4,6 KB · Aufrufe: 106
Hi,

äh. Kreis? :p Das Gebilde auf dem Bild ist in meinen Augen alles andere, nur kein Kreis. ;)

Egal: folgende Funktion zeichnet z.B. einen Kreis mit beliebigem Radius und Geschwindigkeit:
PHP:
function drawCirc(x, y, r, spd) {
	var ang = 0;
	this.lineStyle(1, 0, 100);
	this.moveTo(x + Math.cos(ang) * r, y + Math.sin(ang) * r);
	this.onEnterFrame = function() {
		ang += spd;
		this.curveTo(x + Math.cos(ang - spd / 2) * (r * 1.0), y + Math.sin(ang - spd / 2) * (r * 1.0), x + Math.cos(ang) * r, y + Math.sin(ang) * r);
		if (ang >= Math.PI * 2) delete this.onEnterFrame;
	}
}

drawCirc(200, 200, 50, 0.04);

Gruß
.
 
danke werde es mal ausprobieren,

ich weiß dass es kein Kreis ist aber als was würdest du es beschreiben :)

Eigentlich ist es eine Spirometrie Kurve.
 
Eigentlich ist es eine Spirometrie Kurve.
Ah! Ich wusste doch, von irgendwoher kommt mir die Form bekannt vor! ^^

Nun ja, mit lineTo und curveTo kannst Du prinzipiell alle möglichen Formen langsam oder schnell zeichnen lassen, vorausgesetzt, du hast die Koordinaten irgendwo in einem Array oder so...

@ll STARGAST ll: die Farbe wird in der lineStyle-Aktion festgelegt. Ein Blick in die Referenz wirkt Wunder:
Flashreferenz hat gesagt.:
Verwendung
mein_mc.lineStyle([dicke[, rgb[, alpha]]])

Parameter
dicke Eine Ganzzahl, die die Stärke der Linie in Punkt angibt. Gültig sind Werte von 0 bis 255. Wenn keine Zahl angegeben ist oder wenn der Parameter den Wert undefined aufweist, wird keine Linie gezeichnet. Wird eine Zahl unter 0 übergeben, verwendet Flash den Wert 0, was der dünnsten Linie entspricht. Der Höchstwert beträgt 255; wenn eine Zahl über 255 übergeben wird, verwendet der Flash-Interpreter den Wert 255.

rgb Der hexadezimale Farbwert der Linie (Rot ist beispielsweise 0xFF0000, Blau 0x0000FF usw.). Wird kein Wert angegeben, verwendet Flash 0x000000 (Schwarz).

alpha Eine Ganzzahl, die den Alpha-Wert der Linienfarbe angibt. Gültig sind Werte von 0 bis 100. Wird keine Zahl angegeben, verwendet Flash den Wert 100 (undurchsichtig). Wird eine Zahl unter 0 angegeben, verwendet Flash den Wert 0. Wird eine Zahl über 100 angegeben, verwendet Flash den Wert 100.

Gruß
.
 
Danke Datic. Ich mache gerade meine ersten Schritte in Flash, Babyschritte :) .

PS: Hab's versucht. Versuch fehlgeschlgen!

.
 
Zuletzt bearbeitet:
Danke, hab`s doch geschafft :D !

Code:
function drawCirc(x, y, r, spd) {
    var ang = 0;
    this.lineStyle(1, 0xFF0000, 100);
    this.moveTo(x + Math.cos(ang) * r, y + Math.sin(ang) * r);
    this.onEnterFrame = function() {
        ang += spd;
        this.curveTo(x + Math.cos(ang - spd / 2) * (r * 1.0), y + Math.sin(ang - spd / 2) * (r * 1.0), x + Math.cos(ang) * r, y + Math.sin(ang) * r);
        if (ang >= Math.PI * 2) delete this.onEnterFrame;
    }
}

drawCirc(200, 200, 150, 0.25);
 
Zurück