Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-08-2011, 11:44   #1 (permalink)
Flashanfängerli
 
Benutzerbild von *Aurora*
 
Registriert seit: Apr 2008
Ort: In der Sonne
Beiträge: 7
Post Problem bei zufälliger Wiedergabe von mc's

Hallo zusammen,

hier im Forum habe ich für die zufällige Wiedergabe von MC's einen Beitrag gefunden mit dem ich es geschafft habe die MovieClips innerhalb eines Schlüsselbildes in zufälliger Reihenfolge sichtbar zu machen.

Code:
for(var i:Number=1;i<=3;i++){
   _root["game"+i]._visible = false;
}

var min:Number = 1;
var max:Number = 3;
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;

this["game"+ randomNum]._visible = true;
Leider lässt sich der MC nicht ganz ansehen. Nach ein paar Sekunden springt die Wiedergabe zur nächsten Szene.


Darum habe ich dann am Ende des Codes ein stop(); eingefügt. Das bringt aber nichts. Wenn ich ein weiteres leeres Bild einfüge und ein stop dazu schreibe geht es nicht mit der nächsten Szene weiter aber es springt zu früh zum nächsten allerdings leerem Bild

Weiß jemand warum? Wie könnte ich erreichen, dass die Wiedergabe des MC erst endet wenn am ende ein Button gedrückt wird?

Vielen Dank für eure Zeit,
Aurora
*Aurora* ist offline   Mit Zitat antworten
Alt 15-08-2011, 20:41   #2 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 587
Hallo *Aurora*,

das Beispiel welches Du fandst, war älter glaube ich.

Zufällige Wiedergabe aber keine Sequenz doppelt. Mit Szenen zu arbeiten ist immer Friemelkram, davon wird abgeraten.

Mal ein kleines Beispiel mit ein bisschen Kommentar.

ActionScript:
  1. stop();
  2. // initialisiere eine Zähler Variable, eine Liste für MovieClips, eine Random Liste
  3. var counter:uint = 0, movieList:Vector.<MovieClip>, randomList:Vector.<uint>;
  4.  
  5. function init():void
  6. {
  7.     //MovieClips Liste füllen
  8.     movieList = new <MovieClip>[mc0, mc1, mc2, mc3];
  9.     //Zufallsliste aber kein Wert doppelt
  10.     randomList = randomOrder(movieList);
  11.    
  12.     trace("randomList: " + randomList);
  13.     //Sequenz starten
  14.     startupSequence();
  15.    
  16.     return;
  17. }
  18.  
  19. function startupSequence():void
  20. {
  21.     if(counter == randomList.length) return; //ist Zählervariable gleich länge der Zufallsliste wird abgebrochen
  22.    
  23.     var index:uint = randomList[counter] - 1;//Wert aus der Zufallsliste
  24.    
  25.     var m:MovieClip = movieList[index]; // MC wird aus dem Index geholt, der nacheinander dem Wert aus der Zufallsliste entspricht
  26.     m.addEventListener(Event.ENTER_FRAME, enterFrameHandler); //ENTER_FRAME ist ein Event loop abhängig von der Framerate
  27.     return;
  28. }
  29.  
  30. function enterFrameHandler(e:Event):void
  31. {
  32.     //Wenn Abspeilkopf den letzten Frame erreicht, wird wiederholt,
  33.     if(e.currentTarget.currentFrame == e.currentTarget.totalFrames)
  34.     {
  35.         e.currentTarget.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
  36.         counter++; startupSequence();
  37.     }
  38.     else
  39.     {
  40.         //ansonsten springt der Abspeilkopf des jeweiligen MC nach vorn
  41.         e.currentTarget.nextFrame();
  42.     }
  43.     return;
  44. }
  45.  
  46. function randomExt(minVal:uint,maxVal:uint):uint
  47. {
  48.     //Funktion für eine Zufallzahl zwischen zwei Werten
  49.     return minVal + Math.floor(Math.random() * maxVal + 1 - minVal);
  50. }
  51.  
  52. function randomOrder(v:Vector.<MovieClip>):Vector.<uint>
  53. {
  54.     const R:uint = 0x0001;
  55.     var f:uint = 0,/* f ersetzt Boolen 0 ist false und 1 ist true*/ rL:Vector.<uint> = new Vector.<uint>(); //Zufallsliste
  56.    
  57.     for(var u0:uint=0; u0 < v.length; u0++) //Schleife wird wiederholt, bis die Länge der MC-Liste erreicht ist
  58.     {
  59.         do //do while Schleife wird ausgeführt wenn die Bedingung erfüllt ist, aber mindestens 1x
  60.         {      
  61.             rL[u0] = randomExt(0, v.length); //Zufallswert erstellen
  62.                        
  63.             f |= R; // Bedingung true
  64.            
  65.             loop:for (var u1:uint=0; u1<u0; u1++)
  66.             { /*In der zweiten Schleife wird überprüft,
  67.                 ob sich ein Wert in der Liste befindet,
  68.                 der  auf dem aktuellen Index der ersten Schleife liegt.*/
  69.                 if (rL[u1]==rL[u0]) // falls ja
  70.                 {
  71.                     f &= ~R // Bedingung false
  72.                     break loop; //Abruch der zweiten Schleife
  73.                 }
  74.                
  75.             }
  76.         }
  77.         while (!f);
  78.     }
  79.  
  80.     return rL;
  81. }
  82.  
  83. init();
Angehängte Dateien
Dateityp: fla randomCS4.fla (53,0 KB, 2x aufgerufen)
__________________
just be Daniel
JUNK FOOD: JavaScript Core Reference

Geändert von speedjunkie (15-08-2011 um 21:19 Uhr)
speedjunkie ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
actionscript, movie clip, stop, zufall

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zufälliger text Real2k ActionScript 1 1 26-09-2007 17:34
Flash / Xml Player | Problem mit Wiedergabe 0llyver ActionScript 1 1 16-02-2007 14:15
zufälliger bildwechsel cassiopaya Flash Einsteiger 7 15-09-2006 09:43
zufälliger verkehr Roakin Spielkonzepte und Spieleprogrammierung 3 14-05-2006 12:42
Problem mit zufälliger Reihenfolge millfoo Flash MX 2004 11 14-06-2005 20:01


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele