Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-03-2004, 18:22   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
random und duplicateMovieClip

hallo

ich möchte im folgenden script die mc's zufällig platzieren.
zum verständnis - kann ich das so überhaupt in die funktion
einbinden, oder muß ich die mc's vorher in einem array einlesen?
zur hilfe - vielleicht eine kleine hilfe???

ActionScript:
  1. this.breite_hoehe = 40;
  2. this.luecke=0;
  3. this.timeout = 0.05;
  4. this.anzahl = 50;
  5. this.i = 0;
  6. this.breite = 10;
  7. this.bild.setMask(this.maske);
  8. this.oEF=function() {
  9.         if (i<anzahl) {
  10.                 var zufall = random(50);
  11.                 maske.mask.duplicateMovieClip("mc"+i, i);
  12.                 maske["mc"+i+zufall]._x(breite_hoehe+luecke)*(i%breite);
  13.                 maske["mc"+i+zufall]._y(breite_hoehe+luecke)*Math.floor(i/breite);
  14.                 i++;
  15.         }else{
  16.                 clearInterval(myIntervall);
  17.         }
  18. }
  19. myIntervall=setInterval(oEF,1000*this.timeout);

danke im voraus!
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion ist offline   Mit Zitat antworten
Alt 31-03-2004, 18:39   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Das sollte an sich erstmal schon so gehen, seh jetzt keine gravierenden Fehler. Nur: was machst du, wenn 2mal die selbe Zufallszahl gezogen wird...? Und du hast keine Garantie, dass auch alle 50 Objekte platziert/dupliziert werden. Da wirst wahrscheinlich um ein Array doch nicht drum rum kommen, aus dem du die per random gezogenen Elemente dann auch rauskickst...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (31-03-2004 um 18:41 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 31-03-2004, 18:43   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Naja! hier würd ich schon bedenken anmelden, oder täusch ich mich da
maske["mc"+i+zufall]._x
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 31-03-2004, 19:11   #4 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Stümmt, rostiges Adlerauge, wohl entweder zufall oder i...

__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 31-03-2004, 19:31   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
klar - ich depp!

so, daß geht jetzt schonmal in die richtige richtung.
allerdings sieht es noch ein bischen unbeholfen aus denn
es werden anscheinend nicht alle mc's angesprochen:
ActionScript:
  1. this.breite_hoehe = 40;
  2. this.luecke=0;
  3. this.timeout = 0.05;
  4. this.anzahl = 50;
  5. this.i = 0;
  6. this.breite = 10;
  7. this.bild.setMask(this.maske);
  8.  
  9. arr = []
  10.  
  11. for (var a=0;a<50;a++) {
  12.         arr.push (a)
  13. }
  14.  
  15. nummer = function () {
  16.         l = arr.length
  17.         r = random(l)
  18.         return r
  19. }
  20.  
  21. this.oEF=function() {
  22.         if (i<anzahl) {
  23.                 maske.mask.duplicateMovieClip("mc"+i, i);
  24.                 maske["mc"+arr[nummer()]]._x(breite_hoehe+luecke)*(i%breite);
  25.                 maske["mc"+arr[nummer()]]._y(breite_hoehe+luecke)*Math.floor(i/breite);
  26.                 i++;
  27.                 arr.splice(r,1)
  28.         }else{
  29.                 clearInterval(myIntervall);
  30.         }
  31.         if (arr.length == 0) {
  32.                         delete this.onEnterFrame;
  33.                 }
  34. }
  35. myIntervall=setInterval(oEF,1000*this.timeout);
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion ist offline   Mit Zitat antworten
Alt 31-03-2004, 19:43   #6 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
ist des net ein wenig zuviel für ne random geschichte!!
ActionScript:
  1. var xpos = [];
  2. var ypos = [];
  3. for (i=0; i<50; i++) {
  4.     xpos.push(Math.floor(Math.random()*550));
  5.     ypos.push(Math.floor(Math.random()*400));
  6.     this.attachMovie("mc", "mc"+i, i, {_x:xpos[i], _y:ypos[i]});
  7. }
bin von de standard bühnengröße (550x400) ausgegangen
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 31-03-2004, 21:13   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
vielen dank erstmal!

aber in dem versuch unten gehts nicht. außerdem hab ich grade festgestellt, daß ich noch ein viel grundlegenderes problem
habe. eigentlich sollten erst alle mc's geladen und plaziert werden, bevor sie abspielen! - mir reichts für heute...

ActionScript:
  1. this.bild.setMask(this.maske);
  2.  
  3. var xpos = [];
  4. var ypos = [];
  5.  
  6. for (i=0; i<50; i++) {
  7.         xpos.push(Math.floor(Math.random()*550));
  8.         ypos.push(Math.floor(Math.random()*400));
  9.         maske.mask.duplicateMovieClip("mc", "mc"+i, i, {_x:xpos[i], _y:ypos[i]});
  10. }
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion ist offline   Mit Zitat antworten
Alt 31-03-2004, 21:17   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
des mitm abspielen kann man glaub ich auch regeln!!
da ar ein kleiner fehler der sich von meinem attachzeugs eingeschlichen hat!!
probier morgen mal so
ActionScript:
  1. this.bild.setMask(this.maske);
  2.  
  3. var xpos = [];
  4. var ypos = [];
  5.  
  6. for (i=0; i<50; i++) {
  7.         xpos.push(Math.floor(Math.random()*550));
  8.         ypos.push(Math.floor(Math.random()*400));
  9.         maske.mask.duplicateMovieClip("mc"+i, i, {_x:xpos[i], _y:ypos[i]});
  10. }
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 01-04-2004, 08:54   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
hi rusty - nochmal danke, so gehts!

meine mc's sind quadrate 50 auf 50. um die richtig zu
positionieren(kante an kante) muß mans noch kurz
umrechnen:

ActionScript:
  1. this.bild.setMask(this.maske);
  2.  
  3. var xpos = [];
  4. var ypos = [];
  5.  
  6. for (i=0; i<50; i++) {
  7.         xpos.push(Math.floor(Math.random()*550/50));
  8.         ypos.push(Math.floor(Math.random()*400/50));
  9.         maske.mask.duplicateMovieClip("mc", i, {_x:xpos[i]*50, _y:ypos[i]*50});
  10.         }

jetzt werden aber die mc's aber wieder teilweise überschrieben,
bzw. random gibt doppelte werte aus. muß also doch ein
array herhalten!
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion ist offline   Mit Zitat antworten
Alt 01-04-2004, 09:09   #10 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Geschrieben von ovion
jetzt werden aber die mc's aber wieder teilweise überschrieben,
bzw. random gibt doppelte werte aus. muß also doch ein
array herhalten!
Hab isch ja gsacht...
Sollte so gehen:
ActionScript:
  1. maske.mask.duplicateMovieClip("mc", i, {_x:xpos.splice(i,1)*50, _y:ypos.splice(i,1)*50});
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 01-04-2004, 13:30   #11 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Hehe! kante an kante geht aber auch einfacher
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 01-04-2004, 15:43   #12 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
@sonar: danke, sollte es - aber leider nein!

so wird das komplette array geleert, sprich nach dem ersten mc ist ende!
oder muß ich in dem fall im array vorher die werte definieren?

gruß, q - der jetzt in den biergarten flüchtet!
__________________
"künstler und verbrecher
......................................
sind doch weggefährten,
beide
verfügen über eine
verrückte kreativität,
beide sind
ohne moral,
.........................................
nur getrieben von der kraft der freiheit!"
beuys
ovion 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 06:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele