ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
mx.collections 

ISort  - AS3 Flex

Paketmx.collections
Schnittstellepublic interface ISort
Umsetzer Sort, Sort

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Die ISort-Schnittstelle definiert die Schnittstelle für Klassen, die die zur Sortierung der Daten einer Sammlungsansicht erforderlichen Sortierinformationen bereitstellen.

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
  compareFunction : Function
Die Methode, die für den Vergleich von Elementen bei der Sortierung verwendet wird.
ISort
  fields : Array
Ein Array von ISortField-Objekten, das die zu vergleichenden Felder angibt.
ISort
  unique : Boolean
Gibt an, ob die Sortierung eindeutig sein soll.
ISort
Öffentliche Methoden
 MethodeDefiniert von
  
findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
Sucht das angegebene Objekt im angegebenen Array (oder ggf. die Einfügemarke) und gibt die Indexposition zurück, falls sie gefunden wird, andernfalls -1.
ISort
  
Gibt zurück, ob die angegebene Eigenschaft zur Steuerung der Sortierung verwendet wird.
ISort
  
Durchläuft das Feldarray und ruft reverse() für jedes ISortField-Objekt im Array auf.
ISort
  
sort(items:Array):void
Die aktuelle Sortierung auf das angegebene Array anwenden (keine Kopie davon).
ISort
Eigenschaftendetails

compareFunction

Eigenschaft
compareFunction:Function

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Die Methode, die für den Vergleich von Elementen bei der Sortierung verwendet wird. Wenn Sie diese Eigenschaft angeben, ignoriert Flex alle compareFunction-Eigenschaften, die Sie in den ISortField-Objekten angeben, die Sie in dieser Klasse verwenden.

Die Vergleichsfunktion muss folgende Signatur haben:


     
         function [name](a:Object, b:Object, fields:Array = null):int
     
      

Diese Funktion muss Folgendes zurückgeben value:

  • -1, wenn das Object a vor dem Object b in der sortierten Sequenz erscheinen soll
  • 0, wenn Object a Object b entspricht
  • 1, wenn das Object a nach dem Object b in der sortierten Sequenz erscheinen soll

Um zur internen Vergleichsfunktion zurückzukehren, setzen Sie diesen Wert auf null.

Das fields-Array gibt die zu vergleichenden Objektfelder an. Normalerweise vergleicht der Algorithmus Eigenschaften, bis die Feldliste abgearbeitet wurde oder ein Wert ungleich null zurückgegeben werden kann. Beispiel:


        function myCompare(a:Object, b:Object, fields:Array = null):int
        {
            var result:int = 0;
            var i:int = 0;
            var propList:Array = fields ? fields : internalPropList;
            var len:int = propList.length;
            var propName:String;
            while (result == 0 && (i < len))
            {
                propName = propList[i];
                result = compareValues(a[propName], b[propName]);
                i++;
            }
            return result;
        }
     
        function compareValues(a:Object, b:Object):int
        {
            if (a == null && b == null)
                return 0;
     
            if (a == null)
              return 1;
     
            if (b == null)
               return -1;
     
            if (a < b)
                return -1;
     
            if (a > b)
                return 1;
     
            return 0;
        }
      

Der Standardwert ist eine interne Vergleichsfunktion, die einen Vergleich von Strings, numerischen Werten oder Datumsangaben in aufsteigender oder absteigender Reihenfolge durchführen kann. Geben Sie Ihre eigene Funktion nur an, wenn ein benutzerdefinierter Vergleichsalgorithmus erforderlich ist. Dies ist normalerweise nur der Fall, wenn ein berechnetes Feld in einer Anzeige verwendet wird.

Alternativ dazu können Sie für jedes Sortierfeld mithilfe der compareFunction-Eigenschaft der ISortField-Klasse eigene Vergleichsfunktionen festlegen. Auf diese Weise können Sie für bestimmte Felder den Standardvergleich und für andere Felder einen benutzerdefinierten Vergleich verwenden.



Implementierung
    public function get compareFunction():Function
    public function set compareFunction(value:Function):void

fields

Eigenschaft 
fields:Array

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Ein Array von ISortField-Objekten, das die zu vergleichenden Felder angibt. Die Reihenfolge der ISortField-Objekte im Array bestimmt die Reihenfolge der Feldpriorität bei der Sortierung. Der Standardsortierkomparator prüft die Sortierfelder in der Arrayreihenfolge, bis eine Sortierreihenfolge für die beiden verglichenen Felder bestimmt werden kann.

Der Standardwert ist null.



Implementierung
    public function get fields():Array
    public function set fields(value:Array):void

Verwandte API-Elemente

unique

Eigenschaft 
unique:Boolean

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Gibt an, ob die Sortierung eindeutig sein soll. Eindeutige Sortierungen schlagen fehl, wenn ein Wert oder kombinierter Wert, der von den im Feldeigenschaftenergebnis aufgeführten Feldern angegeben wird, eine unbestimmte oder nicht-eindeutige Sortierreihenfolge ergibt, d. h., wenn zwei oder mehr Elemente identische Sortierfeldwerte haben. Ein Fehler wird ausgegeben, wenn die Sortierung nicht eindeutig ist. Die Sortierungslogik verwendet diesen unique-Eigenschaftswert nur, wenn jedes Sortierfeld explizit festgelegt wird. Wenn kein Sortierfeld explizit festgelegt wird, wird kein Fehler ausgegeben, selbst wenn identische Wertelemente vorhanden sind.

Der Standardwert ist false.



Implementierung
    public function get unique():Boolean
    public function set unique(value:Boolean):void
Methodendetails

findItem

()Methode
public function findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Sucht das angegebene Objekt im angegebenen Array (oder ggf. die Einfügemarke) und gibt den Index zurück, falls er gefunden wird, andernfalls -1. Die findxxx()-Methoden der ListCollectionView-Klasse verwenden diese Methode, um das abgefragte Element zu suchen. Es ist im Allgemeinen einfacher, diese Funktionen anstelle von findItem() zu verwenden, um Daten in ListCollectionView-basierten Objekten zu suchen. Sie rufen die findItem()-Methode direkt auf, wenn Sie eine Klasse schreiben, die die Sortierung unterstützt, wie etwa eine neue ICollectionView-Implementierung. Das Eingabeelementarray muss vor dem Aufrufen dieser Funktion sortiert werden. Ansonsten kann diese Funktion den angegebenen Wert nicht richtig finden.

Parameter

items:Array — Das Array, in dem gesucht werden soll.
 
values:Object — Objekt, das die zu suchenden Eigenschaften enthält (oder das zu suchende Objekt selbst). Das Objekt muss aus Feldnamen/Werte-Paaren bestehen, wobei die Feldnamen die Namen von Feldern sind, die von der fields-Eigenschaft festgelegt wurden, und dieselbe Reihenfolge haben, in der sie in dieser Eigenschaft verwendet werden. Sie müssen nicht alle Felder aus der fields-Eigenschaft angeben, doch es ist nicht möglich, Felder in der Reihenfolge zu überspringen. Wenn die fields-Eigenschaft drei Felder auflistet, können Sie daher das erste und das zweite Feld in diesem Parameter angeben, nicht jedoch das erste und das dritte Feld.
 
mode:String — String, der den Typ des auszuführenden Suchvorgangs enthält. Gültige Werte sind:
ANY_INDEX_MODEGibt eine für die Werte zulässige Position zurück.
FIRST_INDEX_MODEGibt die Position der ersten Fundstelle der Werte zurück.
LAST_INDEX_MODEGibt die Position der letzten Fundstelle der angegebenen Werte zurück.
 
returnInsertionIndex:Boolean (default = false) — Wenn die Methode kein vom values-Parameter identifiziertes Element findet und dieser Parameter true ist, gibt die findItem()-Methode die Einfügemarke für die Werte zurück. Dies ist die Stelle in der sortierten Reihenfolge, an der das Element eingefügt werden soll.
 
compareFunction:Function (default = null) — Eine Komparator-Funktion zum Suchen des Elements. Wenn Sie diesen Parameter nicht angeben oder einen null-Wert bereitstellen, verwendet die findItem()-Funktion die von der compareFunction-Eigenschaft der ISort-Instanz festgelegte Vergleichsfunktion, die in den vom Werteobjekt und den derzeitigen SortFields bestimmten Feldarray übergeben wurde. Wenn Sie einen anderen Wert als null bereitstellen, verwendet die findItem()-Funktion diesen als die Vergleichsfunktion. Die Signatur der Funktion, die als compareFunction übergeben wurde, muss wie folgt lauten: function myCompareFunction(a:Object, b:Object):int. Beachten Sie, dass es kein drittes Argument gibt, im Gegensatz zur Vergleichsfunktion für die ISort.compareFunction()-Eigenschaft.

Rückgabewerte
int — int Die Indexposition im Array des gefundenen Elements. Wenn der Parameter returnInsertionIndex den Wert false hat und das Element nicht gefunden wird. Gibt -1 zurück. Wenn der Parameter returnInsertionIndex den Wert true hat und das Element nicht gefunden wird, wird der Index des Punkts im sortierten Array zurückgegeben, an dem die Werte eingefügt würden.

Auslöser
Error — Wenn Parameterfehler vorliegen, ist das Suchkriterium nicht mit der Sortierungs- oder Komparator-Funktion kompatibel, weil die Sortierung nicht bestimmt werden kann.

propertyAffectsSort

()Methode 
public function propertyAffectsSort(property:String):Boolean

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Gibt zurück, ob die angegebene Eigenschaft zur Steuerung der Sortierung verwendet wird. Die Funktion kann keine definitive Antwort ermitteln, wenn die Sortierung einen benutzerdefinierten Komparator verwendet. Sie gibt in diesem Fall immer true zurück.

Parameter

property:String — Der Name des zu testenden Felds.

Rückgabewerte
Boolean — Ob der Eigenschaftswert Einfluss auf das Sortierergebnis haben kann. Wenn die Sortierung die compareFunction-Standardfunktion verwendet, wird true zurückgegeben, wenn der property-Parameter ein Sortierfeld angibt. Wenn die Sortierung oder ein beliebiges ISortField einen benutzerdefinierten Komparator verwendet, ist es nicht möglich, dies zu ermitteln. Daher wird true zurückgegeben.

reverse

()Methode 
public function reverse():void

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Durchläuft das fields-Array und ruft reverse() für jedes ISortField-Objekt im Array auf. Wenn das Feld absteigend sortiert war, ist es nun aufsteigend sortiert und umgekehrt.

Hinweis: Eine ICollectionView wird nicht automatisch aktualisiert, wenn die Objekte im fields-Array geändert werden. Rufen Sie zur Aktualisierung der Ansicht ihre refresh()-Methode auf.

sort

()Methode 
public function sort(items:Array):void

Sprachversion: ActionScript 3.0
Produktversion: Flex 4.5
Laufzeitversionen: Flash Player 9, AIR 1.1

Die aktuelle Sortierung auf das angegebene Array anwenden (keine Kopie davon). Um zu verhindern, dass das Array geändert wird, erstellen Sie eine Kopie und verwenden die Kopie im items-Parameter.

ICollectionView-Implementierungen von Flex rufen die sort-Methode automatisch auf und stellen sicher, dass die Sortierung an einer Kopie der zugrunde liegenden Daten ausgeführt wird.

Parameter

items:Array — Array von zu sortierenden Elementen.





[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.