Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-09-2006, 21:08   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Mönchengladbach
Beiträge: 11
Post Probleme mit ".sortOn()" ...

Hi Leute,

ich versuche gerade eine Fußball-Tabelle via ".sortOn" zu erstellen.
Als Sortier-Arrays habe ich natürlich die Punkte und dann die Tordifferenz gewählt. Klappt auch alles soweit recht gut mit
"Tabelle_sort_array.sortOn(["punkte", "diff"], 18);"
Ich hab leider nur folgendes Problem:

Es wird bei mir so sortiert:

Punkte TorDiff
0 2
0 -9
0 -3

richtig wäre aber:

Punkte TorDiff
0 2
0 -3
0 -9

Für .sortOn scheint "-9" größer zu sein als "-3" !?

Für eine weiterbringende Antwort wäre ich sehr dankbar ...

Gruß Roland
Roland K ist offline   Mit Zitat antworten
Alt 14-09-2006, 04:06   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
bitte mal die flash-hilfe benützen
zu sortOn gibt es parameter, wie z.b.: Array.NUMERIC

und zeig dein script komplett und nicht nur das 'ergebnis'
(das ergebnis ist nur die auswirkung, die ursache ist das script)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-09-2006 um 04:08 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 14-09-2006, 16:52   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Mönchengladbach
Beiträge: 11
Hi,

ok, wie gwünscht kommt hier alles komplett:

function Tabelle_sortieren() {
var Tabelle_sort_array:Array = new Array();
for (i=0; i<18; i++) {
Team = eval("Team"+i);
TeamSpiele = eval("TeamSpiele"+i);
TeamTore = eval("TeamTore"+i);
TeamGTore = eval("TeamGTore"+i);
TeamDiff = eval("TeamDiff"+i);

TeamPunkte = eval("TeamPunkte"+i);
Tabelle_sort_array.push({team:Team, spiele:TeamSpiele, tore:TeamTore, gtore:TeamGTore, diff:TeamDiff, punkte:TeamPunkte});
}

Tabelle_sort_array.sortOn(["punkte", "diff"], 18);
}

Nun hoffe ich, daß Du mir helfen kannst ...

Gruß Roland




Zitat:
Zitat von hgseib Beitrag anzeigen
bitte mal die flash-hilfe benützen
zu sortOn gibt es parameter, wie z.b.: Array.NUMERIC

und zeig dein script komplett und nicht nur das 'ergebnis'
(das ergebnis ist nur die auswirkung, die ursache ist das script)
Roland K ist offline   Mit Zitat antworten
Alt 14-09-2006, 17:37   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ohne daten kann niemand etwas damit anfangen.
was ist z.b. "Team"+i
ist das eine variable, ein textfeld, ein objekt?
Code:
t = [];
t.push({team:'a', diff:2, punkte:0});
t.push({team:'b', diff:-9, punkte:0});
t.push({team:'c', diff:-3, punkte:0});
t.sortOn(["punkte", "diff"], [Array.NUMERIC | Array.DESCENDING, Array.NUMERIC | Array.DESCENDING]);
//
for (var i = 0; i<t.length; i++) {
	trace(t[i].team+" // "+t[i].punkte+" // "+t[i].diff);
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 16-09-2006, 15:10   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Mönchengladbach
Beiträge: 11
Hi,

danke, du hast mir zumindest indirekt die Lösung gegeben ...
Dein kleines Script lief absolut richtig - meines leider nicht :-(

Die Lösung:
Meine Daten wurden aus einer .txt-Datei variable eingelesen. Bei normalen Werten (Zahlen) kein Problem, aber bei z.B. -3 hat Flash es wohl als Text gewertet - nicht als Zahlenwert ...
Jetzt lasse ich im Script die "-Werte" nochmal neu deklarieren - jetzt klappt´s.

Also danke nochmal ....

Gruß Roland


Zitat:
Zitat von hgseib Beitrag anzeigen
ohne daten kann niemand etwas damit anfangen.
was ist z.b. "Team"+i
ist das eine variable, ein textfeld, ein objekt?
Code:
t = [];
t.push({team:'a', diff:2, punkte:0});
t.push({team:'b', diff:-9, punkte:0});
t.push({team:'c', diff:-3, punkte:0});
t.sortOn(["punkte", "diff"], [Array.NUMERIC | Array.DESCENDING, Array.NUMERIC | Array.DESCENDING]);
//
for (var i = 0; i<t.length; i++) {
	trace(t[i].team+" // "+t[i].punkte+" // "+t[i].diff);
}
Roland K 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 02:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele