Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-10-2003, 11:55   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: Kölle
Beiträge: 28
Zufallsposition mit duplicateMovieClip

hi zusammen,

ich möchte eine instanz eines symbols aus der library xmal duplizieren und dabei ist folgendes wichtig:

- mc1 hat eine feste position
- mc2 bis mcx sind immer 50 px weiter nach rechts versetzt (also mc2=mc1+50, mc3=mc2+50 etc.)
- mc2 bis mcx sollen dabei ihre Y-position per random zwischen einem bestimmten wertebereich wählen

ich hoffe, das ist verständlich dargelegt. meine anhaltspunkte sind:

amount=5;

for(i=0;i<amount+1;i++){

_root.mc.duplicateMovieClip("mc"+i,i+5);
_root["mc"+i]._x=random(Stage.width);
_root["mc"+i]._y=random(Stage.height);

}

hier klappt auch alles so, wie es soll. Ich möchte eigentlich nur "Stage.width" und "Stage.height" in meinen definierten wertebereich ändern, finde aber nirgendwo in der hilfe oder der ref auch nur einen hinweis darauf...

bin noch was n00bed mit AS, habt geduld

und danke schonmal für jeden support...
__________________
Math.komisch ()*66;
nicht verzagen, !R()NM()Nk schlagen
!R()NM()Nk ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:10   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wenn du Zufallszahlen erzeugen willst, geht das über die Methode Math.random(), wobei ohne Zusatzangaben eine Gleitkommazahl berechnet wird, die größer oder gleich 0.0 und kleiner als 1.0 ist. Wenn du also beispielsweise eine Zahl zwischen 0 und 6 errechen möchtest, kannst du folgendes scripten:
ActionScript:
  1. zufall = Math.floor(Math.random()*7);
In deinem speziellen Fall könntest du mal dieses testen:
ActionScript:
  1. _root["mc"+i]._xMath.floor(Math.random() *Stage.width);
  Mit Zitat antworten
Alt 09-10-2003, 12:27   #3 (permalink)
Klugscheisser
 
Registriert seit: Jun 2001
Ort: Düsseldorf
Beiträge: 1.354
amount=5;

for(i=1;i<=amount+1;i++){

_root.mc.duplicateMovieClip("mc"+i,i+5);
_root["mc"+i]._x+=(i*50);
_root["mc"+i]._y=random(Stage.height);

}


Das mit dem Wertebereich in der Höhe ist auch einfach:

Nehmen wir an, Du willst die irgendwo zwischen 50 und 200 hinhaben, dann lautet die Zeile für _y:

_root["mc"+i]._y=50+random(151);

Also Zufallzahl von (50+0) bis (50+150)

Geändert von T.Decay (09-10-2003 um 12:32 Uhr)
T.Decay ist offline   Mit Zitat antworten
Alt 09-10-2003, 13:28   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: Kölle
Beiträge: 28
hmmm

@ agedoubleju:

habe leider keinen erfolg gehabt mit deiner lösung. Math.random "ersetzt" zwar random seit flash 5, aber random ist schneller...gibt es hier irgendwo auch einen thread drüber. danke trotzdem für deine hilfe.

@ T.Decay:

amount=100;

for(i=1;i<=amount+1;i++){

_root.mc.duplicateMovieClip("mc"+i,i+100);
_root["mc"+i]._x+=(i*40);
_root["mc"+i]._y=50+random(40);

}

habe es jetzt für meine bedürfnisse angepasst, habe nur ein problem:

wie mache ich, dass die reiher der entstehenden objekte tiefer (also niedriger) in meinem film ist? zur zeit erscheinen alle objekte an der oberkante des films, egal wohin ich den eigentlichen MC tue.

kann ich vorher ein moveTo benutzen, um alles etwas herunter zu schieben?

vielen dank für eure hilfe
__________________
Math.komisch ()*66;
nicht verzagen, !R()NM()Nk schlagen

Geändert von !R()NM()Nk (09-10-2003 um 13:30 Uhr)
!R()NM()Nk ist offline   Mit Zitat antworten
Alt 09-10-2003, 14:48   #5 (permalink)
Klugscheisser
 
Registriert seit: Jun 2001
Ort: Düsseldorf
Beiträge: 1.354
naja, so wie´s jetzt ist, landen alle bei 50-89px von der Oberkante... ersetz die 50 mal durch 300 schon landen alle um einiges tiefer im Film.

P.S.: Math.random(); soll allerdings um einiges "zufälliger" sein... Ich bin aber auch immer faul und nehm' random()

Geändert von T.Decay (09-10-2003 um 14:55 Uhr)
T.Decay ist offline   Mit Zitat antworten
Alt 09-10-2003, 16:38   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: Kölle
Beiträge: 28
Talking thx

ja stimmt, ich konnte eben in der schule nochmal was daran rumspielen und hatte irgendwann (*probierblödrum*) das richtige gefunden.

und jetzt erscheint es auch mir logisch

danke nochmal für deine hilfe...werden uns wohl ab nun öfter hier sehn...
__________________
Math.komisch ()*66;
nicht verzagen, !R()NM()Nk schlagen
!R()NM()Nk ist offline   Mit Zitat antworten
Alt 09-10-2003, 17:15   #7 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
Zitat:
Geschrieben von T.Decay
naja, so wie´s jetzt ist, landen alle bei 50-89px von der Oberkante... ersetz die 50 mal durch 300 schon landen alle um einiges tiefer im Film.

P.S.: Math.random(); soll allerdings um einiges "zufälliger" sein... Ich bin aber auch immer faul und nehm' random()

wie ist das gemeint ? um einiges zufälliger ?
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 10-10-2003, 09:02   #8 (permalink)
Klugscheisser
 
Registriert seit: Jun 2001
Ort: Düsseldorf
Beiträge: 1.354
@bloba: Ups! Im Handbuch steht was von "nicht emulierten" und deshalb gegenüber F4 genaueren Math. Funktionen ab F5. Und es steht im Context vom Math.random(); Objekt. Hab ich wohl was verdreht.
T.Decay 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 12:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele