Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-02-2005, 10:28   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
zufällig...

Ich muss nochmal mein "Problemchen" ins Forum werfen.
Komme auf keine richtige Lösung und brauch dringend HIIIIILLLLFFEEEEE!

Ich hab 144 Objekte (oder vielleicht besser: Instanzen?).
Per ZUFALL sollen jede Sekunde ZWEI Objekte ausgewählt werden, die dann ihre POSITION tauschen. (Also, zum Beispiel: Obj34 kommt auf Position von Obj72 - und Obj72 auf die Position von Obj34.

Danach geht es automatisch weiter: das nächste Paar. Usw.,usw.

Da wird also nix gelöscht, es werden nur zufällige Paare automatisch (unendlich) ausgetauscht.

Gestartet wir wohl mit: "onClipEvent (enterFrame)... ?
Dann das Array mit den Objekten... mir fehlt der Plan!

Hoffe, das ist einigermaßen verständlich erklärt???

Für nen richtigen Fläsher ist das bestimmt supereasy... oder?
holozän ist offline   Mit Zitat antworten
Alt 19-02-2005, 10:44   #2 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
bitte keine Doppelposts, zeig lieber mal ein .fla, dann macht das vielleicht jemand. Hier gehts weiter.......

Wie der Zufall so will...
__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®
nullidee ist offline   Mit Zitat antworten
Alt 19-02-2005, 10:47   #3 (permalink)
hobbyflasher
 
Benutzerbild von lasic+
 
Registriert seit: Jun 2003
Ort: NRW
Beiträge: 229
Schreib dir eine Funktion, die den Tausch von zwei random-Objekten vornimmt, dann rufste diese funktion mit setInterval jede sekunde auf...
__________________
gruß lasic+
lasic+ ist offline   Mit Zitat antworten
Alt 19-02-2005, 13:07   #4 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

hab da mal was gebastelt, vielleicht hilfts dir ja
einfach ins erste Frame kopieren und testen.
ActionScript:
  1. this.createEmptyMovieClip("mcContainer", 1);
  2.  tl = this.mcContainer;
  3.  tl._y = 20;
  4.  tl._x = 20;
  5.  //
  6.  MovieClip.prototype.drawBox = function(col, w, h, txt) {
  7.      this.clear();
  8.      this.moveTo(0, 0);
  9.      this.beginFill(col, 100);
  10.      this.lineTo(w, 0);
  11.      this.lineTo(w, h);
  12.      this.lineTo(0, h);
  13.      this.lineTo(0, 0);
  14.      this.endFill();
  15.      this.createTextField("txtNum", 2, 0, 17, 50, 16);
  16.      this.txtNum.text = txt;
  17.  };
  18.  //
  19.  MovieClip.prototype.moveMc = function(targetX, targetY) {
  20.      this.onEnterFrame = function() {
  21.          if ((this._x != targetX) || (this._y != targetY)) {
  22.              if ((this._x>targetX) || (this._y>targetY)) {
  23.                  this._x += Math.floor((targetX-this._x)/8);
  24.                  this._y += Math.floor((targetY-this._y)/8);
  25.              }
  26.              if ((this._x<targetX) || (this._y<targetY)) {
  27.                  this._x += Math.ceil((targetX-this._x)/8);
  28.                  this._y += Math.ceil((targetY-this._y)/8);
  29.              }
  30.          } else {
  31.              delete this.onEnterFrame;
  32.          }
  33.      };
  34.  };
  35.  //
  36.  fncInit = function () {
  37.      for (i=0; i<100; i++) {
  38.          tl.createEmptyMovieClip("mc"+i, i);
  39.          o = tl["mc"+i];
  40.          o.drawBox("0x000000", 50, 50, i);
  41.          o._alpha = 20;
  42.          o._x = (i%10)*(o._width+1);
  43.          o._y = Math.floor(i/10)*(o._height+1);
  44.          o.i = i;
  45.  
  46.      }
  47.      ti = setInterval(function () {
  48.          rN = random(100);
  49.          rN2 = random(100);
  50.          obj1 = [tl["mc"+rN], tl["mc"+rN]._x, tl["mc"+rN]._y];
  51.          obj2 = [tl["mc"+rN2], tl["mc"+rN2]._x, tl["mc"+rN2]._y];
  52.          trace(obj1);
  53.          trace(obj2);
  54.          trace("");
  55.          obj1[0].drawBox("0xFF0000", 50, 50, obj1[0].i);
  56.          obj2[0].drawBox("0xFF0000", 50, 50, obj2[0].i);
  57.          obj1[0].moveMc(obj2[1], obj2[2]);
  58.          obj2[0].moveMc(obj1[1], obj1[2]);
  59.      }, 1000);
  60.  };
  61.  //
  62.  fncInit();

__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 19-02-2005, 13:10   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
Smile zufällig...

Hi ::RK::!

Na da bin ich jetzt gespannt... wenn das klappt spring ich vor Freude an die Decke!
Melde mich wieder,
Grüße von Holozän
holozän ist offline   Mit Zitat antworten
Alt 19-02-2005, 14:38   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
Smile zufällig... (schon viel besser)

Ja, so hab ichs mir gedacht. Nur (doooofe Frage) wie bekomm ich meine Buchstaben bzw. Bildchen in die mcs rein (anstelle der Nummerierung) ???

D.h. ich muss die mcs ja selber erstellen, auf der Bühne platzieren, benennen und in ein Array packen usw. (rein theoretisch hab ichs jetzt geschnallt)... nur die Praxis...?

Wie bastel ich das jetzt in Dein geniales Script rein??? Puh...
Für den letzten kleinen Tip wär ich noch dankbar!
holozän ist offline   Mit Zitat antworten
Alt 19-02-2005, 16:11   #7 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
wenn du deinen von hand erstellten MCs eine fotlaufende nummer gibts, also
so wie meins (mc0 ... mc99) dann brauchst kein Array mit den ganzen
instanznamen anzulegen, pack dir einfach das folgendes script und passe die
instanzbezeichnung und den Pfad zu den MCs an.

tl is der Pfad zu deinem ContainerMC, da wo alle anderen drin sind, hast du
keinen kann nimm "this".

tl["mc"+rN] hier musst du lediglich den Prefix, also das vor der fortlaufenden
nummer im Instanznamen anpassen, anstelle von "mc" schreibst du deins rein.

ActionScript:
  1. tl = deinContainerMC
  2.   //
  3.   MovieClip.prototype.moveMc = function(targetX, targetY) {
  4.        this.onEnterFrame = function() {
  5.            if ((this._x != targetX) || (this._y != targetY)) {
  6.                if ((this._x>targetX) || (this._y>targetY)) {
  7.                    this._x += Math.floor((targetX-this._x)/8);
  8.                    this._y += Math.floor((targetY-this._y)/8);
  9.                }
  10.                if ((this._x<targetX) || (this._y<targetY)) {
  11.                    this._x += Math.ceil((targetX-this._x)/8);
  12.                    this._y += Math.ceil((targetY-this._y)/8);
  13.                }
  14.            } else {
  15.                delete this.onEnterFrame;
  16.            }
  17.        };
  18.   };
  19.   //
  20.   fncInit = function () {
  21.        ti = setInterval(function () {
  22.            rN = random(100); // die Zahl 100 musst du an die Anzahl der MCs anpassen
  23.            rN2 = random(100);// die Zahl 100 musst du an die Anzahl der MCs anpassen
  24.            obj1 = [tl["mc"+rN], tl["mc"+rN]._x, tl["mc"+rN]._y];
  25.            obj2 = [tl["mc"+rN2], tl["mc"+rN2]._x, tl["mc"+rN2]._y];
  26.            //
  27.            obj1[0].moveMc(obj2[1], obj2[2]);
  28.            obj2[0].moveMc(obj1[1], obj1[2]);
  29.        }, 1000); // hier kannste die zeit einstellen, in MilliSec
  30.   };
  31.   //
  32.   fncInit();


probier des mal
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs

Geändert von :: RK :: (19-02-2005 um 16:15 Uhr)
:: RK :: ist offline   Mit Zitat antworten
Alt 19-02-2005, 17:00   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
Smile zufällig...

Danke ::RK:: !
Ich versuchs gleich mal!

Danke schonmal im Voraus!
melde mich dann aber nochmal...
Holozän
holozän ist offline   Mit Zitat antworten
Alt 19-02-2005, 21:12   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
Unhappy zufällig... noch nicht ganz!

Hallo ::RK:: !
Natürlich auch an alle Anderen...

Muss zugeben, ich kriegs nicht ganz hin.
Wie weise ich meine mcs an, in den "Container" zu springen?

Was müsste ich denn da vor das Script (s.o.) noch hinzusetzen, damit das fluppt.

Für ein Beispiel würden ja schon 4 mcs genügen; dann kapier ich es vielleicht.

Das war so schön in der ersten Version mit der Transparenz und den abgebremsten Bewegungen... jetzt bin ich soooo gespannt, obs auch mit meinen mcs geht?

Darf ich nochmal um ne Hilfe bitten?
Grüße von Holozän

Geändert von holozän (19-02-2005 um 21:17 Uhr)
holozän ist offline   Mit Zitat antworten
Alt 20-02-2005, 11:22   #10 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

hier mal n kleines Bsp. mit 4 MC (mc0 ... mc3), alle 4 sind in dem mcContainer.
die hab ich da von hand reingemacht, da is nichts mit "reinspringen"

habs dir als MX Version absgespeichert.
Angehängte Dateien
Dateityp: rar Untitled-2.rar (3,5 KB, 30x aufgerufen)
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 20-02-2005, 12:25   #11 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
ich hab noch einen mehr oder weniger bug gefunden. wenn ein Mc 2mal hintereinander bewegt wird, und die erste bewegung noch nicht beendet ist, dann stimmt die end-position nicht mehr.
Hier ein kleiner bugfix:

ActionScript:
  1. tl = deinContainerMC;
  2. //
  3. MovieClip.prototype.moveMc = function(targetX, targetY) {
  4.     if( this.move != true )
  5.     {
  6.         this.move = true;
  7.         this.onEnterFrame = function() {
  8.             if ((this._x != targetX) || (this._y != targetY)) {
  9.                 if ((this._x>targetX) || (this._y>targetY)) {
  10.                     this._x += Math.floor((targetX-this._x)/8);
  11.                     this._y += Math.floor((targetY-this._y)/8);
  12.                 }
  13.                 if ((this._x<targetX) || (this._y<targetY)) {
  14.                     this._x += Math.ceil((targetX-this._x)/8);
  15.                     this._y += Math.ceil((targetY-this._y)/8);
  16.                 }
  17.             } else {
  18.                 delete this.onEnterFrame;
  19.                 this.move = false;
  20.             }
  21.         };
  22.     }
  23. };
  24.  
  25. fncInit = function () {
  26.      ti = setInterval(function () {
  27.          anzahl = 100 // Hier Anzahl der MCs anpassen
  28.  
  29.          rN = random(anzahl);
  30.          rN2 = random(anzahl);
  31.          while ( tl["mc"+rN].move == true )
  32.          {
  33.              rN = random(anzahl);
  34.          }
  35.          while ( tl["mc"+rN2].move == true || rN == rN2 )
  36.          {
  37.              rN2 = random(anzahl);
  38.          }
  39.         
  40.          obj1 = [tl["mc"+rN], tl["mc"+rN]._x, tl["mc"+rN]._y];
  41.          obj2 = [tl["mc"+rN2], tl["mc"+rN2]._x, tl["mc"+rN2]._y];
  42.  
  43.          obj1[0].moveMc(obj2[1], obj2[2]);
  44.          obj2[0].moveMc(obj1[1], obj1[2]);
  45.      }, 1000); // Zeit in Millisekunden
  46. };
  47.  
  48. fncInit();

Geändert von pokepika (20-02-2005 um 12:26 Uhr)
pokepika ist offline   Mit Zitat antworten
Alt 20-02-2005, 13:10   #12 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
ah, genau, hatt ich ja ganz vergessen, danke
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 20-02-2005, 13:59   #13 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
Smile zufällig....

Hallo zusammen,
hab mich echt über Eure scripts gefreut. Werde sie gleich mal ausprobieren. Würde Euch ja gerne auch ma n script schreiben, aber ich glaub das dauert nochn Weilchen... bis ich da durchblicke.
Grüße von Holozän
(wie der "Name" schon sagt... hinke noch was hinten an)
holozän ist offline   Mit Zitat antworten
Alt 22-02-2005, 18:38   #14 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 106
Talking PC Format kann ich net lesen... HILFFFEEEEE!

Hallo zusammen!!!
Ich hab n ganz doooofes Problem:
Die Anlage hier "untitled.rar" kann ich nicht auf dem Mac entkomprimieren, sprich gebrauchen...

Könnte mir einer von Euch die Datei in ne "zip" verzaubern ????

Das wär suuuper toll!!!!!!

Viele Grüße!
Holozän
holozän ist offline   Mit Zitat antworten
Alt 22-02-2005, 18:45   #15 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

... bittschön
Angehängte Dateien
Dateityp: zip Untitled-2.zip (4,0 KB, 29x aufgerufen)
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: 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 15:43 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele