Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-09-2003, 14:09   #1 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Post Globalen Array Pushen

Hi,

Ich habe ein Globales Object:

ActionScript:
  1. _global.PetterObject={
  2.     globalVars:{
  3.                           path :"http://localhost/meinProjekt",
  4.                           numbersLoaded : []
  5.     }
  6. }

Ich möchte eine Funktion schreiben welche mir per random eine Zahl zurückliefert (kann auch als string gesehen werden).

Diese Zahl oder String möchte ich oben in meinen Object hinzufügen. Das es dann spaeter so aussieht:

PetterObject.globalVars.numbersLoaded :["1", "2", "4", "8"]

Die Funktion muss dann immer erst überprüfen ob es den jeweiligen STring/Zahl schon gibt, falls es noch nicht in den Array vorhanden ist soll es hinzugefügt werden.

Und noch was wenn ich an der Stelle wo er keinen Treffer findet die Funktion in sich selber aufrufen soll, muss ich da großartig was aendern ? Ich brauche insgesamt 20 Werte in meinen Array danach soll die Funktion abbrechen. Bei der momentanigen Funktion kriege ich eine Endlosschleife , waere eine möglichkeiten den length des arryay zu überprüfen und danach abbrechen.

Sprich ich habe spaeter alle Zahlen zwischen 1-20 nur das diese halt unsortiert im array sind.

Damit möchte ich bilder zufaellig laden, sprich ein Wert ermitteln der im Array nicht drin steht, das Bild dann laden , dann wieder ein wert ermitteln und somit ein anderes bild laden.


ActionScript:
  1. function checkLoadedNumbers(word, arr) {
  2.     // Funktion um Array nach was zu durchsuchen
  3.     var word_lc = word.toLowerCase();
  4.         for (var i in arr) {
  5.                 var i_lc = arr[i].toLowerCase();
  6.                 if (i_lc == word_lc) {
  7.                         trace('found '+arr[i]);
  8.                         return arr[i];
  9.                 }
  10.         }
  11.         trace("Nix gefunden muss dazu");
  12.         PetterObject.globalVars.numbersLoaded= PetterObject.globalVars.numbersLoaded.push(word);
  13.  
  14. }
  15. //Array durchsuchen
  16. checkLoadedNumbers(random(20)), PetterObject.globalVars.numbersLoaded);
petter ist offline   Mit Zitat antworten
Alt 26-09-2003, 14:44   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Wenn ich es richtig verstanden habe, möchtest du per Zufall eins von zwanzig Bildern laden und es soll keins doppelt vorkommen.

Da ist es einfacher, wie bei der Ziehung der Lottozahlen vorzugehen. Du legst ein Array mit deinen 20 Zahlen an, ziehst jeweils zufällig eine Zahl aus dem Array und entfernst sie dann aus dem Array. Wenn das Array leer ist, bist du fertig.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 26-09-2003, 15:02   #3 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Zitat:
Geschrieben von bokel
Wenn ich es richtig verstanden habe, möchtest du per Zufall eins von zwanzig Bildern laden und es soll keins doppelt vorkommen.

Da ist es einfacher, wie bei der Ziehung der Lottozahlen vorzugehen. Du legst ein Array mit deinen 20 Zahlen an, ziehst jeweils zufällig eine Zahl aus dem Array und entfernst sie dann aus dem Array. Wenn das Array leer ist, bist du fertig.

mfg r.
Jein, es sollen schon alle 20 geladen werden und nebeneinander dargestellt werden, nur in verschiedener Reihenfolge.

Aber du hast recht, rein theoritisch könnte ich ein Array erstellen mit 20 Randomwerte, und immer einen aus dem Array löschen.

Oder wie du sagst, einen Array ["1", "2", .... "20"] und dort Randommaessig einen rausziehen und den Wert entfernen.

Aber... wie ziehe ich zufaellig einen Wert aus dem Array?


Warum muss man immer so kompliziert denken, ich frage mich gerade warum ich das auf diesen (oben) Wege angegangen bin ...

Ahso , den Fehler mit den Pushen hab ich gefunden , ich depp :

PetterObject.globalVars.numbersLoaded= PetterObject.globalVars.numbersLoaded.push(word);

Überschreibt den Array, richtig waere :
PetterObject.globalVars.numbersLoaded.push(word);

Jetzt war ich gerade daran eine Rekursiv Funktion zu schreiben,
die brauch ich aber auch so oder so wenn ich nach jeden entfernen eine zusaetzliche Funktion ausführen muss?
Aber lasse mir jetzt erstnochmal deine Idee durch den Kopf gehen, wie ich damit arbeiten könnte.
petter 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 17:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele