Flashhilfe.de - Flash Community

verschiedene Movieclips zufällig auf Bühne erscheinen lassen [Flash 9]

Forum > ActionScript 3.0 > verschiedene Movieclips zufällig auf Bühne erscheinen lassen

 


AntwortenRegistrieren Seite1 2  

 21.01.2010, 18:32 
abgemeldeter Benutzer

verschiedene Movieclips zufällig auf Bühne erscheinen lassen
Ok, das ist nun mein Problem. Ich habe drei verschiedene Movieclips, die hintereinander, zufällig auf der Bühne erscheinen sollen. Die MovieClips habe ich in drei verschiedene Arrays gepackt, das alles wird über einen Timer gesteuert, sodass nach einer gewissen Zeit jeder der MovieClips von neuem erscheint.
Zur Zeit beginne ich immer mit einem festen Movieclip und sage, sobald der Movieclip eine gewisse Bühnenlänge, x , erreicht hat, der zweite Movieclip bitte..aber das will ich so nicht..ich will, dass das alles zufällig passiert...aber wiederum nicht, dass alle drei Movieclips gleichzeitig erscheinen...
wie geht das?
 22.01.2010, 09:40Re1
Beiträge: 568
Registriert: May 2007

ich verstehe das problem wieder nicht hundert prozentig also du hast 3 movieclips in 3 verschieden arrays. und du legst 1 nen fest auf die bühne soweit richtig ? ich schätze mal der bewegt sich und wenn er ne bestimmte x zahl erreicht hat dann soll der 2 te zufällig irgendwo hingesetzt werden das selbe gilt dann warscheinlich für den 3 ten ?

und ähm die 3 arrays wären aufjeden fall hilfreich und deine timer function
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
 22.01.2010, 09:53Re2
abgemeldeter Benutzer

Themenautor/in

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var mc = new mc();
var mc2 = new mc2();
var mc3 = new mc3();
var lastTime:int =getTimer();
var dx:Number =Math.random()* 4;
var dy:Number = Math.random()*-.3;
var myTimer:Timer = new Timer(7000,int.MAX_VALUE);
        myTimer.addEventListener(TimerEvent.TIMER, addIt);
        myTimer.start();
        var _mcarr:Array
        _mcarr = new Array();
      var _mc2arr:Array;
      _mc2arr = new Array();
      var _mc3garr:Array;
      _mc3arr = new Array();
        function addIt(e:TimerEvent){                                                             
          mc.x =1200;
            mc.y = Math.random()*stage.stageHeight;
          mc2.x =1200;
            mc2.y = Math.random()*stage.stageHeight - egg2.height;
          mc3.x =1200;
            mc3.y = Math.random()*stage.stageHeight - egg3.height;
         
                                                 addChild(mc);
                                    addChild(mc2);
                                    addChild(mc3);
      
                                    _mcarr.push(mc);
                                    _mc2arr.push(mc2);
                                    _mc3arr.push(mc3);
            
      mc.addEventListener(Event.ENTER_FRAME,  bewegen);
      mc2.addEventListener(Event.ENTER_FRAME,  bewegen);
      mc3.addEventListener(Event.ENTER_FRAME,  bewegen);
      
      if (_mcarr.length>6 && _mc2arr.length>6 && _mc3arr.length>6)
      {
         for(var i:uint = 0; i<3; i++)
         { 
         _mcarr[i].removeEventListener(Event.ENTER_FRAME,bewegen);
         removeChild(_mcarr[i]);
         _mc2arr[i].removeEventListener(Event.ENTER_FRAME, bewegen);
         removeChild(_mc2arr[i]);
         _mc3arr[i].removeEventListener(Event.ENTER_FRAME, bewegen);
         removeChild(_mc3arr[i]);
         }   
         }
           
         _mcarr.splice(0,10);
         _mc2arr.splice(0,10);
         _mc3arr.splice(0,10);
      }
      
      function bewegen(e:Event):void {
                                 
                                  var timeDiff:int = getTimer() - lastTime;
                                                                               lastTime += timeDiff;
                           //dy +=gravity*timeDiff;
                                 mc.x -=  dx;
                                                             mc.y -= dy;
                                   //egg.y += int(Math.random()* 16);
                           
                                 
      

                                  if(mc.x < Math.random()*1150)
                                  {
                                 mc2.x -= Math.random()* 10;
                                 mc2.y -=int(Math.random()* 16);
                                 mc2.y += int(Math.random()* 18);
                               
      
                                  }
                                  if(mc.x< Math.random()* 0 && mc2.xMath.random()*1150)
                                  {
                                  mc3.x -= Math.random()* 10;
                                   mc3.y -= int(Math.random()* 16);
                                   mc3.y += int(Math.random()* 16);    
                           
                                  }
      }


hmmm...hat sich irgendwie alles etwas verschoben,..also das script...hoffe du kannst trotzdem was damit anfangen.....
 
nicht sichtbar bei eingeloggten Mitgliedern
 22.01.2010, 10:03Re3
Beiträge: 568
Registriert: May 2007

war denn meine annahme richtig was du überhaupt haben willst ?
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
 22.01.2010, 10:23Re4
abgemeldeter Benutzer

Themenautor/in

also ich lege keinen mc fest auf die bühne...die werden alle zur laufzeit des filmes aufgerufen...denn es soll ja nachher auch so sein, dass z.B. mc2 als erstes auftritt und dann mc und dann mc3 oder erst mc3 dann mc und dann mc2....immer in gewissen abständen..aber keine regelmäßigen Abstände, sondern zufällig
 22.01.2010, 10:45Re5
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

wenn die abstände zufällig sein sollen, dann wirst du wohl einen timer machen, der nur einmal "tickt". im handler rufst du dann, wie du es jetzt schon  machst, addIt auf. in der addIt funktion erstellst du dann wieder einen neuen timer der nur einmal "tickt", aber eine anderes delay hat....
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 
nicht sichtbar bei eingeloggten Mitgliedern
 22.01.2010, 10:53Re6
abgemeldeter Benutzer

Themenautor/in

was meinst du mit einmal ticken? das mit dem delay hört ich logisch an...hätte ich auch drauf kommen können, aber manchmal sieht man als anfänger den wald vor bäumen nicht mehr
 22.01.2010, 10:54Re7
Beiträge: 568
Registriert: May 2007

einmal ticken heißt soviel wie delay = 1
Bitte keine pn´s wegen irgendwelchen fragen zu Threads, dafür gibt es sie ja schließich
 22.01.2010, 11:11Re8
abgemeldeter Benutzer

Themenautor/in

hmmm...ok...so ganz steig ich da jetzt nicht durch..
 22.01.2010, 21:23Re9
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

sobald der Movieclip eine gewisse Bühnenlänge, x , erreicht hat, der zweite Movieclip bitte
Wozu dann aber noch einen Timer für den nächsten?
 22.01.2010, 21:31Re10
abgemeldeter Benutzer

Themenautor/in

naja ich will die ja nicht immer in der gleichen Reihenfolge über die Bühne "laufen" lassen...mal soll der mc2 eher kommen...
 22.01.2010, 21:35Re11
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Also soll der Timer erst dann gestartet werden, wenn eine bestimmte x-Position vom Movieclip erreicht ist?
 22.01.2010, 21:38Re12
abgemeldeter Benutzer

Themenautor/in

nein erst startet doch der timer...daraufhin erscheien die movieclips...sogar noch alle drei gleichzeitig...aber ich will es später so haben, dass sie unterschiedlich auf die bühne kommen..und das am besten "zufallsgesteuert"...so dass erst z.B. mc2 dann mc3 und dann erst mc auftaucht..oder mc3, dann mc 2 und dann mc...usw.
 22.01.2010, 22:00Re13
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Ok, verstanden. :)
Aber eine Frage habe ich noch.
Was passiert mit den Movieclips wenn sie auf der Bühne sind? Verschwinden diese dann einfach wieder, wenn dieser Movieclip laut Timer wieder dran ist, von vorne zu beginnen?
 22.01.2010, 22:03Re14
abgemeldeter Benutzer

Themenautor/in

nein die clips bewegen sich vom rechten zum linken Bühnenende..und aus dem Bild heraus. Das alles passiert zur Zeit über diesen Timer..der bei 7000 steht. nach dieser Zeit würden die Mcs eh von der Bühne verschwinden.
 22.01.2010, 22:08Re15
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Jetzt bin ich verwirrt. Ich denke, der Timer soll zufällig sein. Warum steht der dann auf 7000? Können eigentlich mehrere Movieclips gleichzeitig auf der Bühne sein?
 
Themen
Ähnliche Beiträge zum Thema
bilder frei schweben [Flash CS4] 08.06.2010 - tralala132
 

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de