Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-03-2006, 12:55   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Probleme mit sort.on

Servus, folgender Quellcode:

PHP-Code:
function sortiereArray() {
    
trace(tabelle.sortOn("wert"));
    for (var 
05i++) {
    
trace(tabelle[i].wert);
    }

Folgendes Problem:

Ich habe ein Array, das fünf Movieclips beherbergt (zumindest Referenzen darauf, ihr wisst schon).

Jeder Movieclip hat eine Eigenschaft "Wert", dessen Wert zwischen 2 und 14 liegt. Jetzt wollte ich eigentlich die Movieclips im Array nach dieser Eigenschaft sortieren. Leider funktioniert es nur manchmal. Es wird zwar immer irgendwas umsortiert, aber nicht immer vom Größten zum Kleinsten. Woran kann's liegen?

Danke und Gruß

Geändert von mellon (23-03-2006 um 12:56 Uhr)
mellon ist offline   Mit Zitat antworten
Alt 23-03-2006, 12:59   #2 (permalink)
seltener Gast
 
Benutzerbild von c-lex
 
Registriert seit: Feb 2002
Ort: München
Beiträge: 352
Probiers mal so:

PHP-Code:
function sortiereArray() {
    
trace(tabelle.sortOn("wert",16));
    for (var 
05i++) {
    
trace(tabelle[i].wert);
    }

C-LEX
__________________

Gerechtigkeit ist tätige Wahrheit. (Joubert)

Achim Eifohn

c-lex ist offline   Mit Zitat antworten
Alt 23-03-2006, 13:01   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Funktioniert leider auch nicht.

Also es sit so, dass es manchmal funktionert und zwar in einer Häufigkeit, dass ich denke, dass es kein purer Zufall sein kann. Aber wieso funktioniert es nicht immer?

Geändert von mellon (23-03-2006 um 13:10 Uhr)
mellon ist offline   Mit Zitat antworten
Alt 23-03-2006, 13:13   #4 (permalink)
seltener Gast
 
Benutzerbild von c-lex
 
Registriert seit: Feb 2002
Ort: München
Beiträge: 352
Beispiel für ortOn():

PHP-Code:
tabelle = new Array();
for(
i=0;i<8;i++){
    
objWerte = new Object();
    
objWerte.mc "deine "+i+"te MC Referenz";
    
objWerte.wert Math.ceil(Math.random()*28);
    
tabelle.push(objWerte);
}
function 
sortiereArray() {
    
tabelle.sortOn("wert",16);
    for (var 
05i++) {
        
trace(tabelle[i].wert+" || "+tabelle[i].mc);
    }

sortiereArray(); 
C-LEX
__________________

Gerechtigkeit ist tätige Wahrheit. (Joubert)

Achim Eifohn

c-lex ist offline   Mit Zitat antworten
Alt 23-03-2006, 13:26   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...und wenn der Wert direkt am MC "klebt", könnte man es z.B. so machen:
PHP-Code:
var tabelle = [mc1mc2mc3mc4mc5];
mc1.wert 2;
mc2.wert 4;
mc3.wert 1;
mc4.wert 13;
mc5.wert 10;
function 
sortiere(ab) {
    if (
a.wert<b.wert) {
        return -
1;
        
// a soll vor b
    
}
    if (
a.wert>b.wert) {
        return 
1;
        
// b soll vor a
    
}
    return 
0;
    
// sind gleich
}
tabelle.sort(sortiere);
trace(tabelle
Wobei ich nicht weiß, ob's mit sortOn() nicht irgendwie einfacher geht.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 23-03-2006, 13:31   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Danke, jetzt funktionerts.

Kannst du mir bitte noch sagen, was die 16 bedeutet bei sortOn("wert", 16)? Das hab ich net so ganz verstanden.
mellon ist offline   Mit Zitat antworten
Alt 23-03-2006, 13:36   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Danke auch an den Frager. Hab dein Posting erst gesehen, nachdem ich meinen schon geschrieben hatte. Ich wollte es auch zuerst mit sort() machen, aber ich dachte, das würde gar nicht gehen. Jetzt bin ich auch wieder ein bisschen schlauer.

Geändert von mellon (23-03-2006 um 13:41 Uhr)
mellon ist offline   Mit Zitat antworten
Alt 23-03-2006, 13:52   #8 (permalink)
seltener Gast
 
Benutzerbild von c-lex
 
Registriert seit: Feb 2002
Ort: München
Beiträge: 352
PHP-Code:

sortOn
("wert",16// ist das gleiche wie "sortOn("wert",Array.NUMERIC)" 
Damit wird angegeben, daß Du Zahlen sortieren willst.
Ohne wird es als String sortiert. (d.h. 12 z.B. kommt vor 2);

Flash Hilfe "F1" nach sortOn suchen.

C-LEX
__________________

Gerechtigkeit ist tätige Wahrheit. (Joubert)

Achim Eifohn


Geändert von c-lex (23-03-2006 um 13:53 Uhr)
c-lex 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