Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-03-2004, 13:07   #1 (permalink)
doofer Nickname...
 
Benutzerbild von Axel Sartorius
 
Registriert seit: Jul 2001
Ort: Dortmund
Beiträge: 2.337
Problem: MCs per Random starten

Hallo Forum,
Ich hab 100 Mcs auf der Bühne, für die über random eine Animationsfunktion gestartet wird. Wenn das ganze allerdings wie folgt ausgeführt wird
ActionScript:
  1. fallNow = function ()
  2. {
  3. this.createEmptyMovieClip("randomizer", 5);
  4.     randomizer.onEnterFrame = function(){
  5.     z = random(100);
  6.     if (_root["square"+z] != undefined)
  7.     {
  8.         _root["square"+z].fall();
  9.     }
  10.  
  11.     if (total == 0)
  12.     {
  13.         delete this.onEnterFrame;
  14.     }
  15. }
  16. }
... dann startet alles zwar fulminant, aber sobald nur noch etwa 20 MCs übrig sind, zieht es sich immer länger hin, bis die Funktion ausgeführt wird. Ist halt wie bei 'ner Lottoziehung wo von Durchgang zu Durchgang immer weniger Kugeln im Spiel sind...

Worüber ich mir jetzt seit Tagen den Kopf zerbreche: Es muß doch eine Möglichkeit geben, daß bei jedem enterFrame aus exakt den noch vorhandenen MCs einer zufällig ausgewählt wird und nicht jedesmal von 0-99 durchgezählt werden muss, selbst wenn nur noch 15 MCs auf der Bühne sind....

Jemand 'ne Idee?

PS: cool wäre, wenn Eure Idee setInterval-kompatibel ist - eine for-Schleife wird alles ein bißchen zu fix ausgeführt...
__________________
Q:What happens if we nuke Great Cthulhu?
A: He reforms 20 Minutes later - but now he's RADIOACTIVE!
Axel Sartorius ist offline   Mit Zitat antworten
Alt 23-03-2004, 13:15   #2 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
ActionScript:
  1. arr = []
  2. for (var i=0;i<100;i++) {
  3. arr.push (i)
  4. }
  5.  
  6.  
  7.  
  8. nummer = function () {
  9. l = arr.length
  10. _root.r = random(l)
  11. return _root.r
  12. }
  13.  
  14. fallNow = function ()
  15. {
  16.         this.createEmptyMovieClip("randomizer", 5);
  17.         randomizer.onEnterFrame = function(){
  18.                  _root["square"+nummer()].fall();
  19. arr.splice(_root.r,1)
  20. if (arr.length == 0) {
  21.                         delete this.onEnterFrame;
  22.                 }
  23.         }
  24. }

ungetestet

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 23-03-2004, 14:14   #3 (permalink)
doofer Nickname...
 
Benutzerbild von Axel Sartorius
 
Registriert seit: Jul 2001
Ort: Dortmund
Beiträge: 2.337
Danke für die fixe Antwort!

...aber funzt leider nicht! Die nummer-function reduziert zwar bei jedem Aufruf die Array-Länge, verhindert aber nicht, daß über random bestimmte Zahlen mehrmals gezogen werden.

Schade - sah auf den ersten Blick gut aus!
__________________
Q:What happens if we nuke Great Cthulhu?
A: He reforms 20 Minutes later - but now he's RADIOACTIVE!
Axel Sartorius ist offline   Mit Zitat antworten
Alt 23-03-2004, 14:17   #4 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
huch hatte auch was vergessen...

ActionScript:
  1. arr = []
  2. for (var i=0;i<100;i++) {
  3.         arr.push (i)
  4. }
  5.  
  6.  
  7.  
  8. nummer = function () {
  9.         l = arr.length
  10.         _root.r = random(l)
  11.         return _root.r
  12. }
  13.  
  14. fallNow = function ()
  15. {
  16.         this.createEmptyMovieClip("randomizer", 5);
  17.         randomizer.onEnterFrame = function(){
  18.                 _root["square"+arr[nummer()]].fall();
  19.                 arr.splice(_root.r,1)
  20.                 if (arr.length == 0) {
  21.                         delete this.onEnterFrame;
  22.                 }
  23.         }
  24. }

versuchs mal so

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 23-03-2004, 14:28   #5 (permalink)
doofer Nickname...
 
Benutzerbild von Axel Sartorius
 
Registriert seit: Jul 2001
Ort: Dortmund
Beiträge: 2.337
Thumbs up

Yup! Jetzt nudelt er endlich alle durch!

Danke!
__________________
Q:What happens if we nuke Great Cthulhu?
A: He reforms 20 Minutes later - but now he's RADIOACTIVE!
Axel Sartorius 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 04:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele