| |||||||
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) |
| WindelWinny Registriert seit: Feb 2005
Beiträge: 7
| Punkte mit Linienanimation verbinden
Hi, wie ihr unten am AS sehen könnt, bin ich kein Profiscripter, nennt mich also eher Newbie. Ich habe ein Problem, bei dem ich langsam nicht mehr weiter weiß. Ich möchte eine Animation erstellen, bei der eine bestimmte Anzahl an Punkten durch eine Linie verbunden wird, allerdings als Animation. D.h. Eine Linie soll langsam von Punkt A nach B laufen, dann von B nach C usw. Dabei soll immer die gleiche Geschwindigkeit eingehalten werden. Wie mache ich das am besten? Jeden Punkt habe ich in ein Array geschrieben Punkt1(x-wert, y-wert) Punkt2(x-wert, y-wert) usw. dann versuche ich mit der lineTo Funktion in genormten Abständen zu zeichnen, immer Stückchen für Stückchen. Wittlerweile bezweifle ich, dass das überhaupt so geht. Ich habe ja schon das Problem, dynamisch an die Werte des Arrays zu kommen. siehe AS delta_x und _y. Das geht da gar nicht. Wäre echt nett wenn mir jemand weiterhelfen könnte Gruß Braunbär Code: anzahlP = 15;
// Es gibt 15 Punkte
Punkt1 = new Array(180,450);
Punkt2 = new Array(120,450);
Punkt3 = new Array(200,350);
Punkt4 = new Array(120,350);
Punkt5 = new Array(120,300);
Punkt6 = new Array(210,300);
Punkt7 = new Array(250,200);
Punkt8 = new Array(120,200);
Punkt9 = new Array(120,150);
Punkt10 = new Array(300,150);
Punkt11 = new Array(240,300);
Punkt12 = new Array(300,300);
Punkt13 = new Array(300,350);
Punkt14 = new Array(220,350);
Punkt15 = new Array(180,450);
function paint_it(){
_root.createEmptyMovieClip( "versuch", 1 );
with (_root.versuch){
lineStyle (5, 0x000000, 100);
//Anfangspunkt setzten
moveTo (Punkt1[0],Punkt1[1]);
//für jeden Punkt durchlaufen
for(j=1;j<anzahlP+2;j++){
// das delta x der 2 Punkte berechnen
//für den ersten Schleifendurchgang sollte das lauten
// delta_x = Punkt2[0]-Punkt1[0];
delta_x = (this["Punkt"+(j+1)]+"[0]")-(this["Punkt"+j]+"[0]");
trace (delta_x);
// das delta y der 2 Punkte berechnen
//für den ersten Schleifendurchgang sollte das lauten
// delta_y = Punkt2[1]-Punkt1[1];
delta_y = (this["Punkt"+(j+1)]+"[0]")-(this["Punkt"+j]+"[0]");
trace (delta_y);
//die Länge der Verbindungslinie wird berechnet
laenge = Math.round (Math.sqrt(delta_x*delta_x+delta_y*delta_y));
//damit die Linien-Animation immer gleichschnell läuft, wird
//hier die Schrittlänge im Bezug zur Linienlänge berechnet
dx = delta_x/laenge;
dy = delta_y/laenge;
//hier bin ich noch nicht fertig
//das soll natürlich auch dynamisch laufen
for (i=0;i<laenge; i++){
Punkt1[0] = Punkt1[0]+ dx;
Punkt1[1] = Punkt1[1]+ dy;
lineTo (Punkt1[0], Punkt1[1]);
//hier müßte eine kleine Zeitverzögerung eingebaut werden
}
}
}
}
paint_it(); |
| | |
| | #2 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
ahja, eine «sieben». habe dir mal was gebastelt. ist noch nicht perfekt, da z.b. das zeichnen in abschnitten noch nicht funktioniert (habe es jetzt so schnell nicht hin- bekommen), aber vielleicht bringt es dich ja trotzdem weiter ... wenn du fragen hast, dann frage. gruß, gaspode |
| | |
| | #3 (permalink) |
| WindelWinny Registriert seit: Feb 2005
Beiträge: 7
|
danke für Deine Antwort. Mit einem 2-dim. Array ist das natürlich auch gleich "professioneller". Aber wie kann ich da jetzt eine Zeitverzögerung einbauen? Die Zahl soll ja langsam entstehen. Geht das überhaupt mit reinem AS, habe leider bisher noch nichts in der Doku gefunden? Kann man da nicht irgendwie einen Timestamp nehmen und damit Rechnen? |
| | |
| | #4 (permalink) | |
| _______________ Registriert seit: Mar 2003 Ort: !Schnitzerland
Beiträge: 2.003
| Zitat:
schoene gruesse
__________________ ey… be cool! Mac OS-X 10.5.6, Safari Version 4 Public Beta (5528.16), on PowerBook 12" G4 1,5 GHz, 1,25 GB RAM, FlashPlayer 9 is auch noch da, wenn ich Lust habe… | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |