Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-12-2003, 11:21   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
status von script abfragen ?

hallo...

ich hab mir aus nem tutorial ein script genommen und ein wenig angepasst. das funktioniert jetzt auch ganz gut. das script zeichnet mir aus einem array mit koordinaten eine linie.

jetzt möchte ich das aber so haben, dass eine zweite linie gezeichnet wird, nachdem die erste fertig. und dann eine dritte nachdem die zweite fertig ist. und so weitre....

ich habe jetzt versucht eine extra funktion für das andere array zu machen, die dann nach ende des ersten scripts aufgerufen wird. aber die fangen dann trotzdem gleichzeitig an zu zeichnen.

kann ich irgendwie abfragen, ob die linie fertig gezeichnet ist???

ich blicks gerade überhaupt nicht mehr. wäre für eure hilfe sehr dankbar...

so sieht das script aus:

ActionScript:
  1. onClipEvent (enterFrame) {
  2.     _x = _parent.arrx1[i];
  3.     _y = _parent.arry1[i];
  4.     if (i<(_parent.arrx1.length-1)) {
  5.         i++;
  6.     } else {
  7.         Mouse.show();
  8.     }
  9.     _parent.attachMovie("line", "line"+i, i);
  10.     with (_parent["line"+i]) {
  11.         _x = _parent.arrx1[i-1];
  12.         _y = _parent.arry1[i-1];
  13.         _xscale = _parent.arrx1[i]-_parent.arrx1[i-1];
  14.         _yscale = _parent.arry1[i]-_parent.arry1[i-1];
  15.     }
  16. }

grüße
eyest() ist offline   Mit Zitat antworten
Alt 15-12-2003, 11:38   #2 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
ähhhmmm ...?

also in MX gibt es ja jetzt Zeichenbefehle ... (lineTo, curveTo ...) ... da brauchst du nicht mehr einen mc mit einer fertigen 45°-linie attachen ....


kannst du etwas näher beschreiben, was das script machen soll ...?
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 15-12-2003, 11:46   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
ja es war so gedacht, dass es auf der seite illustrationen gibt, die aussehen wie dieses typische telefongekritzel. aus diesem grund habe ich mir einen hilfsfilm zusammengebastelt, in dem ich mit der maus malen kann und er mir dann am schluß die koordinaten ausspuckt.

die koordinaten kopiere ich dann nur noch in den eigentlichen film und er zeichnet mir das dann nach.

ich wollte das ursprünglich mit den zeichnen-funktionen (lineTo...) machen, hab es aber nicht hinbekommen. habe leider auch keine allzugroße erfahrung mit as.

wie würde das in diesem fall denn gehen mit curveTo?
eyest() ist offline   Mit Zitat antworten
Alt 15-12-2003, 12:01   #4 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
also die koordinaten hast du schon mal im array?


(dein problem war auch, dass es zu schnell gezeichnet wird ..?)


'lineTo' ... ist wohl angebrachter ...
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 15-12-2003, 12:07   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
ja das problem mit dem zu schnell zeichnen war auch von mir, aber das hat dann mit diesem script funktioniert.

wenn das mit lineTo gehen würde, wäre es mir aber um einiges lieber. dann kann ich nämlich auch direkt über das script die linien-stärke ändern...

meine koordinaten hab ich einem array, dass so aufgebaut ist:


ActionScript:
  1. newx1 = "412.95,413.95,414.95,415.95,416.95,417.95,418.95,419.95,420.95,421.95,421.95,423.95,424.95,...";
  2. newy1 = "225,225,225,224,224,224,224,224,223,223,222,222,222,221,220,220,220,219,219,218,218,218,217,...";
  3.  
  4. arrx1 = newx1.split(",");
  5. arry1 = newy1.split(",");
eyest() ist offline   Mit Zitat antworten
Alt 15-12-2003, 14:04   #6 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
sollen die linien alle in den selben mc gezeichnet werden ...ist an sich normal, ausser du willst ein einzelnes Liniensegmant mal löschen ....
wo werden die linienstärken im array abgelegt ...?
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 15-12-2003, 14:16   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
ja die linien sollen alle in einen mc gezeichent werden.

die linienstärke würde ich dann manuell mit lineStyle festlegen, das würde für meine zwecke vollkommen ausreichen.

es wäre dann auch möglich, die verschiedenen kurven mit unterschiedlichen geschwindigkeiten zu zeichen, oder? das wär der absolute hammer. damit hatte ich mit dem bisherigen script auch so meine probs....

wär echt genial, wenn du mir da helfen könntest !
eyest() ist offline   Mit Zitat antworten
Alt 15-12-2003, 14:34   #8 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
'manuell' ist schlecht ...
irgendwo musst du sie ja ablegen ... bei der Gelegenheit kannst du die Zeichengeschwindigkeit auch noch mit angeben ...


du hast eine angeordnete Menge von Punkten, immer zwei benachbarte definieren ein Kurvensegment,
für die Kurvensegmente gibt es jeweils Strichstärke und Zeichengeschwindigkeit ...

um das ganze 'intelligent' anzugreifen ... wäre auch noch interessant, wie du zu den Punkten/Strichstärken/Geschwindigkeiten kommst ....
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 15-12-2003, 15:02   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
also sowas wie die zeichengeschwindigkeit und die linienstärke ist eigentlich schon im array nachher drin, aber bisher war es eher für mich als merker gedacht.

ActionScript:
  1. Xtreme = "433.95,443.95,453.95,463.95,472.95,480.95,489.95,497.95,507.95,514.95,522.95,528.95,534.95,
  2. 540.95,544.95,549.95,|NEWARRAY|,|NEWARRAY|,|LINESTYLE=FETT|,|NEWARRAY|,|SPEED=2x|,668.95,669.95,670.95,672.95,674.95,676.95,678.95,680.95,682.95,685.95";
  3. Yabadabadooh = "189,190,190,|NEWARRAY|,|NEWARRAY|,|LINESTYLE=FETT|,|NEWARRAY|,|SPEED=2x|,255,255.95,255.95,255.95,256.95,256.95,256.95,256.95,256.95";

jedesmal, wenn die maustaste losgelassen wird, wird in das array ein |NEWARRAY| mit reingeschrieben. ebenso der lineStyle |LINESTYLE=FETT] und die geschwindigkeit |SPEED=2x|...

hab dir mal das fla angehängt. wenn du was gemalt hast, drückst du S auf der tastatur und er spuckt dir die zwei arrays aus.

ist vielleicht manches etwas unprofessionell angelegt, aber wie gesagt bin absoluter newbie in as...
Angehängte Dateien
Dateityp: zip malennachzahlen.zip (19,4 KB, 5x aufgerufen)

Geändert von eyest() (15-12-2003 um 15:04 Uhr)
eyest() ist offline   Mit Zitat antworten
Alt 15-12-2003, 16:13   #10 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
du hast 2 'onMouseMove' auf dem stift liegen ... !!??


es sollen also auch mehrere Kurven gezeichnet werden können ...

und wohin sollen sie reproduziert werden?
oder ist das nur das swf zum 'aufzeichnen' ..?

die geschwindigkeit könntest du über eine 'timerdifferenz' automatisch generieren ...
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 15-12-2003, 16:27   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
Zitat:
du hast 2 'onMouseMove' auf dem stift liegen ... !!??
sollte man wohl besser zu einem zusammefassen? wie gesagt: newbie. aber es läuft...


Zitat:
es sollen also auch mehrere Kurven gezeichnet werden können ...
ja!


Zitat:
und wohin sollen sie reproduziert werden?
oder ist das nur das swf zum 'aufzeichnen' ..?
sorry, ja! hab ich vergessen ins zip zu packen. aber bitte nicht erschrecken, ist wahrscheinlich noch chaotischer als das andere fla....


Zitat:
die geschwindigkeit könntest du über eine 'timerdifferenz' automatisch generieren ...
wie geht sowas? meinst du schon bei der aufzeichnung?


danke, dass du dich so meinem problem annimmst!
Angehängte Dateien
Dateityp: zip ausgabe.zip (5,5 KB, 4x aufgerufen)
eyest() ist offline   Mit Zitat antworten
Alt 15-12-2003, 17:03   #12 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
die strichstärke bleibt pro linienzug gleich ... oder!?
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 15-12-2003, 17:07   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
ja, die kurvenstärke bleibt bis zum absetzen gleich...
eyest() ist offline   Mit Zitat antworten
Alt 16-12-2003, 17:58   #14 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
ok ... also mal ein kleines script ...
wie es die Daten zu den Punkten erwartet, denke ich, kannst du schon daraus entnehmen ...


einfach in eine leere fla ....

ActionScript:
  1. kurve = new Array();
  2. kurve[0] = new Array();
  3.  
  4. kurve[0].push({x:0, y:0, t:0});
  5. kurve[0].push({x:200, y:400, t:2224});
  6. kurve[0].push({x:400, y:600, t:3343});
  7. kurve[0].push({x:400, y:400, t:4456});
  8. kurve[0].push({x:150, y:450, t:6683});
  9.  
  10.  
  11. _root.createEmptyMovieClip( "drawPlane", 1 );
  12.  
  13. this.__eachPoint = function(){
  14.     if(this.currentPoint < this.arrayRef.length-1){
  15.         this.dt = Math.round((this.arrayRef[this.currentPoint+1].t - this.arrayRef[this.currentPoint].t)/this.speed);
  16.         this.dx = this.arrayRef[this.currentPoint+1].x - this.arrayRef[this.currentPoint].x;
  17.         this.dy = this.arrayRef[this.currentPoint+1].y - this.arrayRef[this.currentPoint].y;
  18.         this.Sdx = this.dx / this.dt;
  19.         this.Sdy = this.dy / this.dt;
  20.         this.currentPoint++;
  21.         this.onEnterFrame = this.__p2pDrawer;
  22.     }else{
  23.         this.currentPoint=0;
  24.         delete this.onEnterFrame;
  25.     }
  26. }
  27.  
  28. this.__p2pDrawer = function(){
  29.     if(this.steps < this.dt){
  30.         this.xNow += this.Sdx;
  31.         this.yNow += this.Sdy;
  32.         this.drawPlane.lineTo (this.xNow, this.yNow);
  33.         this.steps++;
  34.     }else{
  35.         this.steps=0;
  36.         this.onEnterFrame = this.__eachPoint;
  37.     }
  38. }
  39.  
  40.  
  41.  
  42. this.__kInit = function(args){
  43.     this.arrayRef = args.aRef;
  44.     this.speed = args.sp;
  45.     this.currentPoint = 0;
  46.     this.drawPlane = args.dp;
  47.     this.drawPlane.lineStyle (args.ls_t, args.ls_c, args.ls_a);
  48.     this.drawPlane.moveTo (this.arrayRef[this.currentPoint].x, this.arrayRef[this.currentPoint].y);
  49.     this.onEnterFrame = this.__eachPoint;   
  50. }
  51.  
  52.  
  53. this.__kInit({aRef:this.kurve[0], sp:25, dp:_root.drawPlane, ls_t:0, ls_c:0xff0000, ls_a:100});
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 17-12-2003, 15:24   #15 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 24
W O h O O . . .

hi pius.

komme grad erst wieder an den rechner...
das script sieht ziemlich klasse aus. ein bisschen krass für nen anfänger wie mich, aber gut...

ich glaube den großteil des scripts versteh ich. ich mach mich jetzt mal ans ausprobieren... werd aber bestimmt noch auf ein paar fragen stoßen.


schon mal 1000dank deine arbeit!


gruß
seye
eyest() ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele