Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-07-2006, 17:58   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 222
.sort bei mehrdimensionalen array

hi ...

ich möchte einen mehrdimentionalen array sortieren:
nehmen wir mal an ... es gäbe spieler ... und für jeden spieler liegt name,punkte und datum in einem array ... alle diese arrays liegen in einer highscoreliste.


PHP-Code:
var HighscoreListe:Array = new Array()
HighscoreListe[0] = new Array("ralph""222222""3.4.2006");
HighscoreListe[1] = new Array("frank""111111""3.4.2006");
HighscoreListe[2] = new Array("volker""3444""3.4.2006"); 

... sodle .. und nun möcht ich diese sortieren ...
geht das so einfach ... habe in der flashhilfe folgendes gefunden ... aber bin nicht sicher ob man das irgendwie darauf anwenden kann ...

PHP-Code:
var passwords_array:Array = new Array("mom:glam""ana:ring""jay:mag""anne:home""regina:silly");
function 
order(ab):Number {
    var 
name1:String a.split(":")[0];
    var 
name2:String b.split(":")[0];
    if (
name1<name2) {
    return -
1;
    } else if (
name1>name2) {
    return 
1;
    } else {
    return 
0;
    }
}
trace("Unsorted:");
trace(passwords_array);
passwords_array.sort(order);
trace("Sorted:");
trace(passwords_array); 
hat jemand ne idee die uner 150 zeilenlang ist ?

gruß
ralph
Mediautilus24 ist offline   Mit Zitat antworten
Alt 23-07-2006, 18:11   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Jetzt noch das Beispiel darauf anwenden und alles ist wunderbar

ActionScript:
  1. function order(a, b):Number
  2. {
  3.     var name1:String = a[0];
  4.     var name2:String = b[0];
  5.     if (name1<name2) {
  6.         return -1;
  7.     } else if (name1>name2) {
  8.         return 1;
  9.     } else {
  10.         return 0;
  11.     }
  12. }
  13. //
  14. var HighscoreListe:Array = new Array()
  15. HighscoreListe[0] = new Array("ralph", "222222", "3.4.2006");
  16. HighscoreListe[1] = new Array("frank", "111111", "3.4.2006");
  17. HighscoreListe[2] = new Array("volker", "3444", "3.4.2006")
  18. trace(HighscoreListe.sort(order));

Also eigentlich nur die beiden Zeilen sind anders
ActionScript:
  1. var name1:String = a[0]; 
  2. var name2:String = b[0];

Geändert von sebastian (23-07-2006 um 18:13 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 23-07-2006, 18:16   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 222
ähm ...

wow ...

leider kapier ich nicht, warum das funktioniert ... aber doll isses scho :-\ ...
ich glaube mein problem dabei ist, dass ich nict kapiere , woher die werte von a und b im function eingang kommen sollen ... die werden doch gar nicht übergeben ... naja ... zumindest kenn ich diese syntax nicht ...

kannst mir noch erklären woher die werte kommen ?
Mediautilus24 ist offline   Mit Zitat antworten
Alt 23-07-2006, 18:22   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Der Sortiert-Algorithmus übergibt diese Werte. Bekommst halt zwei
Parameter und musst diese abgleichen und einen Wert zurückgeben.

An dem Abgleich (name1<name2) ändert sich ja nichts, es geht nur
darum wie die Werte übergeben werden. Davor hattest du einen
String "x:y", der beim Doppelpunkt gesplittet und zum Array umge-
wandelt wurde. Da deine Werte ja jetzt schon Arrays sind, kannst
du auch direkt auf die Werte zugreifen, also eben das split weg.

lg

Geändert von sebastian (23-07-2006 um 18:25 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 23-07-2006, 18:28   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 222
aaaahhh ... der übergibt die zu vergleichenden kombies ... und die function sagt ihm quasi what was größer oder kleiner is ... nooow i see ...

eigentlich simpel ... ;-) ..

dankscheen

gruß
ralph
Mediautilus24 ist offline   Mit Zitat antworten
Alt 23-07-2006, 18:31   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Ja genau

bitte und lg
sebastian ist offline   Mit Zitat antworten
Alt 18-09-2006, 10:48   #7 (permalink)
im Urlaub!
 
Benutzerbild von dali
 
Registriert seit: Jul 2001
Beiträge: 383
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
var name1:String = a[0];
var name2:String = b[0];
[/as]

Aber wenn ich die Position im Array nicht in der Funktion festlegen möchte?

Eher sowas:

PHP-Code:
var name1:String a[pos];  
var 
name2:String b[pos]; 
Wie kann ich das dann machen?
dali 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 05:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele