Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-01-2004, 23:13   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Hamburg
Beiträge: 109
Zufalls Auslese...

Hallo, habe hier folgendes Problem:

ich möchte eine soundbank abrufen. Alle Songs (so um die 40 Stück) werden in Movie geladen, das als Player fungiert. Man steuert diese Songs aber nicht direkt an, sondern der Player sucht sie per Zufallsgenerator aus. Um nun keine bereits abgespielten Songs (song11, song20, song13, song11!!) muss der Zufalls generator also wissen, was er bereits abgespielt hat. Eine Art Daten Bank anlegen.

Wie kann ich so etwas realisieren. Bin kein Crack, aber eigentlich ganz gut eingearbeitet... So befehle wie "New Object" hab ich allerdings noch nicht benutzt. Gehe eigentlich eher, wenn ich programmiere mechanisch vor...

Bin für jede Hilfe dankbar
Julian
__________________
Es kommt...
silbercue ist offline   Mit Zitat antworten
Alt 06-01-2004, 23:54   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Hi,

mach eine Liste mit 40 Einträgen, jeder für einen Song.
Dann wählst du per Zufall einen aus und schmeisst den gleichzeitig aus der Liste raus.
ActionScript:
  1. var tracklist = new Array();
  2. for(var i = 0; i <= 39; i++) {
  3. tracklist[i] = i;
  4. }
  5. //
  6. function randomTrack() {
  7. var r = Math.ceil(Math.random() * tracklist.length);
  8. return "song" + tracklist.splice(r, 1) + ".swf";
  9. }
  10. // Aufruf:
  11. loadMovie(randomTrack());
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (07-01-2004 um 00:00 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:06   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Hamburg
Beiträge: 109
Danke für die schnelle Antwort...

Mhm... das klingt logisch. Das "loadMovie(randomTrack());"
könnte jetzt ein Button sein, richtig. Ups da kommt folgende Fehlermeldung:

Szene=Szene 1, Ebene=Ebene 1, Bild=1: Line 2: Falsche Anzahl von Parametern; bei loadMovie wird zwischen 2 und 3 benötigt.
loadMovie(randomTrack());

Was erreicht man eigentlich mit diesem arrayDing?
__________________
Es kommt...
silbercue ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:18   #4 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
1. war eh nicht ganz richtig, hab mich wieder tot-editiert, hier das richtige Skript:
ActionScript:
  1. var tracklist = new Array();
  2. for (var i = 0; i <= 39; i++) {
  3.     tracklist[i] = i + 1;
  4. }
  5. //
  6. function randomTrack() {
  7.     var r = Math.floor(Math.random() * tracklist.length);
  8.     return "song" + tracklist.splice(r, 1) + ".swf";
  9. }

2. Du musst ein Ziel-Objekt angeben, wohin deine Sound-swfs geladen werden sollen, also z.B ein extra MC (empfehlenswert):
ActionScript:
  1. deinSoundMC.loadMovie(randomTrack());

3. Ein Array, also eine Liste, ist hier eine Möglichkeit, Zahlen per Zufall auszuwählen und zu verhindern, dass sie nochmal ausgewählt werden.
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:21   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Hamburg
Beiträge: 109
ok... soweit ich dein Script verstanden habe löschst du ein Element (sagen wir song8) damit. Mit "tracklist.length" list man doch aber nur die Länge des Arrays aus (sprich ohne eins gleich nur noch 39 Titel). Der 8te Titel wäre aber nach deinem Script immer noch in der random Auswahl, oder sehe ich das falsch?
__________________
Es kommt...
silbercue ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:27   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Hamburg
Beiträge: 109
Ne ich seh das total falsch. Hei, ich habe wieder sehr viel gelernt. Vielen Dank Sonar.

Schade, dass man keine Bewertungen abgeben kann wie auf Ebay. Mein Prädikat wäre dann> Sehr gut!

Danke schön
Julian
__________________
Es kommt...
silbercue ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:27   #7 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Ja, aber dafür is die Zeile: tracklist[i] = i+1.
D.h. an 8. Stelle steht in der Liste die Zahl 8. Wählt die Zufallsfunktion nun die 8, wird das, was an 8. Stelle in der Liste eingetragen war, gelöscht. Somit kann Track8 nicht mehr ausgewählt werden...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:28   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Hamburg
Beiträge: 109
Was passiert den eigentlich, wenn man keine Arrays mehr übrig hat?
__________________
Es kommt...
silbercue ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:32   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Du hast ja nur ein Array
Wenn keine Elemente mehr in der Liste sind... hm, das bleibt dir überlassen. Normalerweise würd ich eine Abfrage rein machen, ob noch Elemente in dem Array drin sind, und wenn nicht, eine Fehlermeldung ausgeben oder das Array neu generieren. Oder sowas...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:37   #10 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Hamburg
Beiträge: 109
Nochmals Danke Sonar ohne Dich hätte ich das nich geschafft. Was mir auffällt, ist das wenn es immer weniger Einträge im Array sind (so bei 3 oder 2) das dann nur noch "song.swf" augespuckt wird (eigentlich sehr schön denn da kann man ja dann das ENDE der Fahnenstange ankündigen. Nur wie kommt das? Man hat ja noch ein paar Elemente drinnen...

Hängt das mit der
Math.ceil(Math.random()
Geschichte zusammen...
__________________
Es kommt...
silbercue ist offline   Mit Zitat antworten
Alt 07-01-2004, 00:41   #11 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
--> siehe die Verbesserung meines Skripts (Math.floor). Das is mir dann auch aufgefallen, dass die Zufallsfunktion über die Länge des Arrays hinaus geht, wo ja nix mehr eingetragen is...

Grüße an den Norden!
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar 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 15:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele