Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-07-2003, 13:10   #1 (permalink)
Neuer User
 
Benutzerbild von apfel007
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 161
OnEnterFrame schafft mich!!!!

Moin,Moin!
Könnte nochmal etwas Hilfe gebrauchen...und zwar möchte ich mit der funktion gerade01 linien zeichen.. und zwar sollen die Dinger auch alle sichtbar bleiben!
wenn ich "delete this.onEnterFrame;" nachdem Aufruf eingebe, wird das olle Ding ja komplett gelöscht.. Wie kann ich die Funktion mehrfach ausführen, ohne dass gezeichnete linien gelöscht werden ? Wer kann mir helfen ?
gruß apfel007




ActionScript:
  1. _root.createEmptyMovieClip("mc", 20);
  2. style=2, 0xff7700, 100;
  3. var kreise = new Array(3);
  4. for (var r = 0; r<3; ++r) {
  5.     kreise[r] = new Array(24);
  6. }
  7. _root.mc.onEnterFrame = function() {
  8.     _root.koord(1, 0, 12, 360, 400, 300, 270, 270, 0, 1, 1);
  9.     delete this.onEnterFrame;
  10.     _root.koord(2, 0, 12, 360, 400, 300, 270, 200, 0, 1, 1);
  11.     delete this.onEnterFrame;
  12.     _root.koord(3, 0, 12, 360, 400, 300, 270, 80, 0, 1, 1);
  13.     delete this.onEnterFrame;
  14.     _root.gerade01(1, 12, 1, 0);
  15.    
  16. };
  17.  
  18. Movieclip.prototype.koord = function(kreis, p, anzahl, winkel, xpos, ypos, radius1, radius2, tiefe, xmulti, ymulti) {
  19.     var gFaktor = winkel/anzahl;
  20.     for (var i = 0; i<=winkel; i += gFaktor) {
  21.         _root.attachMovie("clip", "punkt"+tiefe, tiefe);
  22.             _root["punkt"+tiefe]._x = xpos+radius2*Math.cos(i*Math.PI/180*xmulti);
  23.         kreise[kreis][p] = xpos+radius2*Math.cos(i*Math.PI/180*xmulti);
  24.                     p++;
  25.         _root["punkt"+tiefe]._y = ypos-radius1*Math.sin(i*Math.PI/180*ymulti);
  26.         kreise[kreis][p] = ypos-radius1*Math.sin(i*Math.PI/180*ymulti);
  27.                 trace("y01: "+kreise[1][p]);
  28.         trace("y02: "+kreise[2][p]);
  29.         tiefe++;
  30.         p++;
  31.                 if (kreis == 02 && tiefe>=12) {
  32.             ++kontroll;
  33.            
  34.         }
  35.     }
  36. };
  37. ////////////////////
  38. Movieclip.prototype.gerade01 = function(kr1, z, kr2, z1) {
  39.     // kr1= KrB.Anfangspunkt,z = Wertlage im Arry KrB1, kr2= KrB.Endpunkt, z1 = Wertlage im Arry KrB2
  40.     // Y-koordinaten werden von ersten übernommen!
  41.     style=2, 0xff7700, 100;
  42.         y = z;
  43.         ++y;
  44.         Ykoordiante = kreise[kr1][y];
  45.     Xkoordiante1 = kreise[kr1][z];
  46.     Xkoordiante2 = kreise[kr2][z1];
  47.     walker = Xkoordiante1;
  48.        
  49.     while (walker>=Xkoordiante2 || walker<=Xkoordiante2) {
  50.         moveTo(Xkoordiante1, Ykoordiante);
  51.         if (Xkoordiante1<Xkoordiante2) {
  52.             this.lineTo(++walker , Ykoordiante);
  53.         } else {
  54.             this.lineTo(--walker, Ykoordiante);
  55.         }
  56.         this.lineStyle(style);
  57.     }
  58. };
apfel007 ist offline   Mit Zitat antworten
Alt 24-07-2003, 14:58   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

mir ist Flash jetzt drei Mal abgestürtzt...

Ohne dir zu nahe treten zu wollen, da stimmt wohl einiges nicht...
Offensichtlich verrennt sich Flash da in einer Endlos-Schleife. Und dein onEnterFrame kann so natürlich gar nicht funktionieren, wenn du es löschst...

Was willst du eigentlich erzeugen? Vielleicht gibt es einen anderen Ansatz.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 24-07-2003, 15:42   #3 (permalink)
Neuer User
 
Benutzerbild von apfel007
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 161
Arrow Absturz

Bei mir hängt das Ding auch!! Deshalb frage ich ja :-)
Was ich vor habe !? Ok Mein kreatives Köpfchen hat sich folgendes ausgedacht ..
es soll eine 2 deminsionale Wirefarme Weltkugel gezeichnet werden.
Ganz so einfach soll dies aber nicht sein, also nicht erst die Kreisbahnen und dann die waagerechten...ich möchte an verschieden Punkten im Gitter anfangen, linie zu ziehen , damit man erst nach ein paar Sekunden überhaupt blickt was da erzeugt wird! Die Einzel Teile sollten dann so ausehen zB.
___)
__)
verstehst ...? fange mit einer linie an - gefolgt von einem Bogen, dann eine linie....
Dazu müßte man von 3 elliptischen Kreisbahnen die Schnitt-Koordinaten abfragen, diese in ein Array speichern, um dann später die verschieden Teilkreisbahnen und Waagerechten zeichnen zu lassen. Soweit die Theorie..

Geändert von apfel007 (24-07-2003 um 15:43 Uhr)
apfel007 ist offline   Mit Zitat antworten
Alt 24-07-2003, 15:53   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
habs nich ausprobiert aber
1.blick:
ActionScript:
  1. while (walker>=Xkoordiante2 || walker<=Xkoordiante2) {
in deinem proto gerade01
dan nwird gerade01 in deinem enterFrame ausgeführt

was ist walker? nen pointer der deine linie "zeichnen" soll
für was das while?while rechnet solange bis die bedingung erfültl ist, kann es sein dass diese nicht erfültl wird?
das lineTO macht auch keinen sinn, denn ich denke duwillst ja sehen wie gezeichnet wird
nur leider wird ne schleife komplett abgearbeitet und dann erst das frame neu gezeichnet

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 24-07-2003, 16:14   #5 (permalink)
Neuer User
 
Benutzerbild von apfel007
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 161
Pointer

Hi Delux!

Jo walker is ein pointer... Mit schleifen habe ich einfach kein Glück!
Hab die Schleife drin, weil der x Anfangswert <=130 oder >=670 sein kann und so machmal nach rechts oder links gezeichnet werden soll.
apfel007 ist offline   Mit Zitat antworten
Alt 24-07-2003, 16:20   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
was soll das?
ActionScript:
  1. _root.mc.onEnterFrame = function() {
  2.         _root.koord(1, 0, 12, 360, 400, 300, 270, 270, 0, 1, 1);
  3.         delete this.onEnterFrame;
  4.         _root.koord(2, 0, 12, 360, 400, 300, 270, 200, 0, 1, 1);
  5.         delete this.onEnterFrame;
  6.         _root.koord(3, 0, 12, 360, 400, 300, 270, 80, 0, 1, 1);
  7.         delete this.onEnterFrame;
  8.         _root.gerade01(1, 12, 1, 0);
  9.        
  10. };
einmal gelöscht imemr weg
sprich die ersten 2 zeilen führt er aus den rest nicht

bei mir hängt sich das script nichmal auf
leifert mir im trace viele hübsche zahlen

gezeichnet wird eh noch nichts also sieht man nix

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 24-07-2003, 16:30   #7 (permalink)
Neuer User
 
Benutzerbild von apfel007
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 161
Lausiger Coder

Ich weiß ich bin ein lausiger Coder, wenn überhaupt!:-)
Die drei Zeilen sind dafür da, um die Schnittpunkte des Gitters zu bestimmen, und die hübschen zahlen werden dann ins Array gepackt, damit man nachher über die Punkte die Verschieden Stücke des Wireframes zeichnen kann

gruß apfe007
apfel007 ist offline   Mit Zitat antworten
Alt 24-07-2003, 16:32   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
trotzdem kriegste nur einen schnittpunkt wenn ichs dir doch sage
ActionScript:
  1. this.onEnterFrame=function(){
  2. trace("hallo")
  3. delete this.onEnterFrame
  4. trace("noch da?")
  5. delete this.onEnterFrame
  6. trace("schade...")
  7. delete this.onEnterFrame
  8. }

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 24-07-2003, 16:41   #9 (permalink)
Neuer User
 
Benutzerbild von apfel007
 
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 161
Mhhmmm

Mhm, ich will ja nicht aufmüpfig werden ;-) Wenn ich die Werte aus der funktion ...koord.. trace , werden 3 mal (kreis1, kreis2, kreis3) 24 werte ausgegeben. Das die 3 Zeilen gelöscht werden ..... delete this... is nicht weiter schlimm, denn die Werten sollten sich im Array befinden. Eigentlich möchte ich so nur Koordinaten Paare erzeugen, für später zum "malen"
apfel007 ist offline   Mit Zitat antworten
Alt 24-07-2003, 18:26   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
*kopf* auf tastatur hau
ok ich war vorlaut
onENterFrame wird gelöscht!
aber nachdem die funktion durchlaufen wurde,
der ganze block
nix löschen und damit stop *g

aber ein delete reciht
um wenigstens ein wenig recht zu behalten

grüße
deluxe
Deluxe 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 23:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele