Paket | mx.collections |
Schnittstelle | public interface ISort |
Umsetzer | Sort, Sort |
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flex 4.5 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
ISort
-Schnittstelle definiert die Schnittstelle für Klassen, die die zur Sortierung der Daten einer Sammlungsansicht erforderlichen Sortierinformationen bereitstellen.
Verwandte API-Elemente
Eigenschaft | Definiert 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 |
Methode | Definiert 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 | ||
Die aktuelle Sortierung auf das angegebene Array anwenden (keine Kopie davon). | ISort |
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 demObject b
in der sortierten Sequenz erscheinen soll - 0, wenn
Object a
Object b
entspricht - 1, wenn das
Object a
nach demObject 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
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:
| |||||||
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.
|
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.
|
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.
|
Tue Jun 12 2018, 10:04 AM Z