Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-09-2003, 11:57   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 52
Personen laufen durchs Bild

Hallo zusammen,

nachdem ich jetzt Stunden damit verbracht habe, die verschiedenen Postings im Forum zum Thema "random" auf mein Problem anzuwenden, gebe ich auf!

Vielleicht kann mir ja jemand weiterhelfen.

Versuch: Auf meiner Bühne befinden sich u.a. 4 verschiedene MCs, die jeweils eine Person beim laufen zeigen (Animation aus 100 Frames, bei der ein MC von links nach rechts oder umgekehrt läuft). Diese 4 "Personen" sollen nun zu unterschiedlichen Zeiten durchs Bild laufen. Ich dachte mir das so wie bei http://www.astra-bier.de

Habe versucht das Problem mit einem leeren Steuer-MC zu lösen, wie es in einem Thread beschrieben war. Das ganze scheint zu funktionieren, jedenfalls werden die Personen-MCs nacheinander zufällig abgespielt.

Problem: Irgendwann läuft gar keiner der Personen-MCs mehr.

Frage: Wie kann ich realisieren, daß die Personen nicht erst dann loslaufen, wenn ein vorheriger MC bereits durchgelaufen ist? Die Personen sollten also nach meiner Vorstellung einfach nur zu unterschiedlichen Zeitpunkten (vielleicht in Zeitintervallen von 5-10 Sekunden) loslaufen. Sie können dabei auch doppelt auftauchen. Also grundsätzlich so, wie bei der Astra-Bier website.

Besten Dank im voraus!

Gruß
Günni
Angehängte Dateien
Dateityp: zip personen.zip (3,5 KB, 10x aufgerufen)
GuenniSeil ist offline   Mit Zitat antworten
Alt 16-09-2003, 12:12   #2 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 51
versuchs mal mit sowas:

bei jedem bildaufruf (enterframe) wird ne zufallszahl(z.b. 0 - 1) bestimmt! ist die zufallszahl kleiner als eine bestimmte schwelle, z.B. 0.1 wird person1 weggeschickt! das heist mit einer statistischen wahrscheinlichtkeit von 10% wird in jedem bild person1 weggeschickt!
oder anderst! im schnitt wird alle 10bilder person1 weggeschickt!

das ganze machst dann nochmalm mit person2,3 und 4! jeweils mit einer neuen zufallszahl!
Hugepanic ist offline   Mit Zitat antworten
Alt 16-09-2003, 12:26   #3 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
würde ne andre variante vorschlagen. du brauchst folgendes:

_mc mit all deinen personen filmen drinne->name: "movie"
_array mit den bildbezeichnern auf de´nen die personen mc´s liegen
_set intervall

einen mc machen und

->1.frame: name:"array"

->du füllst den array mit mit deinen "personenbildbezeichnern":

ActionScript:
  1. film = new Array();
  2. film[0] = "person1";
  3. film[1] = "person2";
  4. film[2] = "person3";

->2.frame: name: "anzeigen"
dann stellst du ein zufallsfunktion auf:

ActionScript:
  1. i = random((film.length));
  2. trace(film[i]);
  3. _root.movie.gotoAndPlay(film[i]);
  4. film.splice(i, 1);
  5. gotoAndPlay("zeit");
  6. // einen arrayinhalt raussuchen, anzeigen und gleichzeitig löschen
  7.  

->3.frame name: "zeit"

ActionScript:
  1. function checken() {
  2.     if (film.length<=0) {
  3.         gotoAndPlay("array");
  4.     } else {
  5.         gotoAndPlay("anzeigen");
  6.     }
  7. }
  8. looper = setInterval(checken, 2000);
  9. stop();
  10. // wenn der array leer ist, fange von vorne an, sonst
  11. // mach weiter bis der array leer ist
  12. // und die zeit anzählen, hier: 2sek
  13.  

kannst die personen mc auch auf die bühne attachen, per loadMovie reinladen oder was auch immer und halt ohne die bildbezeichner arbeiten...

ich hab das ganz für diese seite gemacht...wenn 30 sekunden keine nav geklickt wird, wird per zufall eins von 4 videos abgespielt, bis alle einmal durch sind ...

das bsp dazu hängt an

hoffe ist verständlich
_RED_
Angehängte Dateien
Dateityp: zip timer_array.zip (3,4 KB, 8x aufgerufen)
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (16-09-2003 um 12:28 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 16-09-2003, 13:31   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 52
Rückfrage

Vielen Dank für die schnellen Antworten!

Leider komme ich trotzdem nicht so recht weiter. Wenn ich das mit dem Array-Timer richtig verstanden habe, dann werden die MCs nacheinander abgespielt. Das heisst, wenn der eine abgelaufen ist, kann der nächste zufällig starten. Mir wäre es jedoch wichtig, daß sich die MCs zeitlich "überlappen" können. Ich denke, daß Hugepanics Vorschlag in die Richtung geht. Allerdings komme ich damit nicht klar.

Vielleicht könnte Hugepanic ja mit einem kleinen Code dienen Ich bin doch blutigster Anfänger bei AS.

Danke, danke!

Gruß
Günni
GuenniSeil ist offline   Mit Zitat antworten
Alt 16-09-2003, 13:42   #5 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
ok, dann mal ganz einfach


im ersten frame:
deine zufallsaktion

ActionScript:
  1. i=random(3);
->dabei spcukt dir flash jett ein zahl zwischen 0 und 2 aus

im zweiten frame sagst du flash jetzt was er mit der zahl machen soll:

ActionScript:
  1. if(i==0){
  2.     trace("person1");
  3.     }
  4. if(i==1){
  5.     trace("person2");
  6.     }
  7.     if(i==2){
  8.     trace("person3");
  9.     }

->in meinem beispiel gibt er dir im ausgabefenster den entsprechenden namen aus...und zwar so schnell wie die bps eingestellt sind ...

du könntest auch sagen:
ActionScript:
  1. if(i==1){
  2.     _root.MovieclipmitPerson1.play()
  3.     }

das war´s

wenn du entsprechend die if abfrage nicht in den 2. frame setzt sondern bei einer bildrate von z.b. 24 frames die if abfrage in den 24. frame, dann wird jede sekunde ein film abgespielt ...


jetzt besser?

bsp angehängt ...

_RED_
Angehängte Dateien
Dateityp: zip zufall.zip (1,9 KB, 10x aufgerufen)
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 16-09-2003, 14:36   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 52
...ich muss da nochmal nachhaken...

Hallo RedSaint,

zunächst einmal herzlichen Dank für deine Bemühungen! Ich habe einfach mal deine if-Schleife für jede Person erstellt:

if(i==1){
_root.mc1.gotoAndPlay(2)
}

if(i==2){
_root.mc2.gotoAndPlay(2)
}

if(i==3){
_root.mc3.gotoAndPlay(2)
}

if(i==4){
_root.mc4.gotoAndPlay(2)
}


Soweit funktioniert es ganz gut, aber ich habe das Problem, daß sich die MCs bei diesem Verfahren nicht zeitlich "überlappen". Wenn ich das Skript ausführe, wird der MC (die Person) nicht bis zum Ende abgespielt, weil per Zufallszahl der gleiche MC wieder von neu gestartet wird. Somit läuft die Person nicht ihre gesamten Bilder ab, sondern springt plötzlich wieder zum Anfang.

Vielleicht hast du ja noch einen Tip.

Jedenfalls nochmal besten Dank für die Unterstützung!

Gruß
Günni
GuenniSeil ist offline   Mit Zitat antworten
Alt 16-09-2003, 14:53   #7 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
ok ... daher die sache mit den "arrays" von oben ... so kann nur ein mc abgespielt werden, der noch nicht läuft.

aber es gibt auch noch die möglichkeit eine abfrage mit einzubeziehen:

du vergibst in jedem deiner personen mc eine variable:

z.b. in mcPerson1 im 2. frame (denn wenn flash da ankommt spilet der mc ja ab)

ActionScript:
  1. _root.variableeins=true

und im 1.frame steht warscheins ein stop() und :

ActionScript:
  1. _root.variableeins=false;

so...nun kannst du in deiner if abfrage erstmal checken ob die person schon am laufen ist oder nicht und NUR wenn NICHT soll er play() machen:

ActionScript:
  1. if(i==1 && _root.variableeins==false){
  2. _root.mc1.gotoAndPlay(2)
  3. }

das ganze halt mit allen mc´s machen, dann müsste es auch funzen...
sonst nochmal posten.

gruß

_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (16-09-2003 um 14:55 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 16-09-2003, 15:28   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 52
...aha!

Vielen Dank! Es hat geklappt!!!

Jetzt wird mir auch klar, wofür die arrays sind...werde das gleich mal noch ausprobieren.



Erstklassige Hilfe!!!

Danke
Günni
GuenniSeil ist offline   Mit Zitat antworten
Alt 16-09-2003, 15:37   #9 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
na super! freut mich ...

arrays sind unglaublich nützlich wenn man´s mal einigermaßen intus hat (was ich selbst auch noch nicht wirklich hab ... )

wenn du dir da wa zu gemüte führen willst kann ich das array tut von ff-user pheidrias nur empfehlen !


gruß

und lass deine arbeit dann mal sehen wenn´ste soweit bist...

_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint 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 00:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele