{lang: 'de'}
Flashhilfe.de - Flash Community

Funktion leert externes Array [Flash 10]

 


AntwortenRegistrieren Seite1  

TheLapeno#1
Benutzerbild von TheLapeno
Beiträge: 2
Registriert: Apr 2011

08.04.2011, 23:51

Hey Leute,

ich bin gerade dabei eine Funktion zum mixen eines Arrays zu schreiben.

Folgende:

ActionScript:
1
2
3
4
5
6
7
8
9
private function mixArray(array:Array):Array {
           var temp:Array = new Array();
              while (array.length > 0){   
                 var r:int = Math.floor(Math.random() * array.length);
                 temp.push(array[r]);
                 array.splice(r, 1);
              }         
           return temp;
        }


Das funktioniert auch schon ganz gut. Nur eine Sache wundert mich.

Wenn ich die Funktion folgendermaßen aufrufe:


ActionScript:
1
2
3
private var test:Array = new Array(1, 2, 3, 4, 5, 6, 7);
trace(mixArray(test));
trace(mixArray(test));



Das erste Trace gibt wird korrekt ausgegeben. Doch dann wird komischer weise die Variable test geleert denn der 2te Trace ist leer.

Habt ihr eine Idee??
Schlagwörter: Array mischen
Geändert von TheLapeno am 09.04.11 um 00:01 Uhr
domzom#2
Benutzerbild von domzom
Beiträge: 40
Registriert: Oct 2008

09.04.2011, 08:00

In Zeile 6:
ActionScript:
1array.splice(r, 1);

löscht du Stück für Stück dein Array.

Füge nach Zeile 7 folgendes ein
ActionScript:
1array = temp;

Das dürfte helfen.
RustyCake#3
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

09.04.2011, 09:07