[MOVIECLIP] Linien zeichnen mit Prototypes

luke_the_duke

Erfahrenes Mitglied
Hallo,

hier zwei MovieClip-Erweiterungen, mit denen sich zu Laufzeit Geraden zeichnen lassen. Vielleicht hat jemand Verwendung dafür.
ACHTUNG: Der Code ist in AS 2.0 verfasst, funktioniert also erst ab MX 2004 bzw. Player v7.


Code:
MovieClip.prototype.drawSlowingLine = function (vel: Number, d: Number, sX: Number, sY: Number, eX: Number, eY: Number, th: Number, cl: Number, al: Number): Void {
	
	var u: Number = this.getNextHighestDepth();
	if (!this.slowingLineCT) {
		this.createEmptyMovieClip("slowingLineCT", u);
	}
	
	var currentX: Number = sX;
	var currentY: Number = sY;	
	var xDif: Number;
	var yDif: Number;
	
	this.slowingLineCT.onEnterFrame = function () {
		if (d > 0) {
			d--;
		} else {
			xDif = endX - currentX;		
			yDif = endY - currentY;
			
			xDif *= vel;
			yDif *= vel;
			
			currentX += xDif
			currentY += yDif
			
			with (this._parent) {
				clear();
				lineStyle(th, cl, al);
				moveTo(sX, sY);
				lineTo(currentX, currentY);
			}
			if (xDif < 1 && yDif < 1) delete this.onEnterFrame;
		}
	}
}

Beschreibung:
Zeichnet mit abnehmender Geschwindigkeit eine Line von Punkt A nach Punkt B.

Code:
meinMovieClip.drawSlowingLine (Geschwindigkeit, Startpunkt x, Startpunkt y, Endpunkt x, Endpunkt y, Breite, Farbe, Transparenz)


Geschwindigkeit: Number, Geschwindigkeit der Animation, muss grösser als 0 aber kleeiner als 1 sein.
Verzögerung: Number, Anzahl Frames, die abspielen, bevor die Animation beginnt
Startpunkt x, y: Number, die Koordinaten des Startpunktes, von dem aus die Linie gezeichnet wird.
Endpunkt x, y: Number, die Koordinaten des Endpunktes, zu dem die Linie gezeichnet wird.
Breite: Number, Breite der zu zeichnenden Linie in Pixel.
Farbe: Number, Hexadezimal-Wert für die Farbe der zu zeichnenden Linie (z.B. 0xff6622).
Transparenz: Number, Alpha-Wert für die zu zeichnende Linie. Muss grösser als 0 und kleiner als 100 sein.



Code:
MovieClip.prototype.drawSteadyLine = function (vel: Number, d: Number, sX: Number, sY: Number, eX: Number, eY: Number, th: Number, cl: Number, al: Number): Void {
	
	var u: Number = this.getNextHighestDepth();
	if (!this.steadyLineCT) {
		this.createEmptyMovieClip("steadyLineCT", u);
	}
	
	var cX: Number = sX;
	var cY: Number = sY;
	
	var xDif: Number = eX-sX;
	var yDif: Number = eY-sY;
	
	var xStep: Number = xDif/vel;
	var yStep: Number = yDif/vel;
	
	this.steadyLineCT.onEnterFrame = function () {
		if (d > 0) {
			d--;
		} else {
			cX += xStep;
			cY += yStep;
			
			xDif = eX - cX;
			yDif = eY - cY;
			
			with (this._parent) {
				clear();
				lineStyle(th, cl, al);
				moveTo(sX, sY);
				lineTo(cX, cY);
			}
			if (xDif < 1 && yDif < 1) delete this.onEnterFrame;
		}
	}
}

Beschreibung:
Zeichnet mit gleichbleibender Geschwindigkeit eine Line von Punkt A nach Punkt B.

Code:
meinMovieClip.drawSteadyLine (Geschwindigkeit, Startpunkt x, Startpunkt y, Endpunkt x, Endpunkt y, Breite, Farbe, Transparenz)


Geschwindigkeit: Number, Anzahl Schritte/Frames, während denen die Animation abgespielt wird. Muss eine Ganzzahl und grösser als 0 sein.
Verzögerung: Number, Anzahl Frames, die abspielen, bevor die Animation beginnt
Startpunkt x, y: Number, die Koordinaten des Startpunktes, von dem aus die Linie gezeichnet wird.
Endpunkt x, y: Number, die Koordinaten des Endpunktes, zu dem die Linie gezeichnet wird.
Breite: Number, Breite der zu zeichnenden Linie in Pixel.
Farbe: Number, Hexadezimal-Wert für die Farbe der zu zeichnenden Linie (z.B. 0xff6622).
Transparenz: Number, Alpha-Wert für die zu zeichnende Linie. Muss grösser als 0 und kleiner als 100 sein.

gruss
 
Zuletzt bearbeitet:
Zurück