Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
mx.collections 

ISort  - AS3 Flex

パッケージmx.collections
インターフェイスpublic interface ISort
実装者 Sort, Sort

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

ISort インターフェイスは、コレクションビューのデータをソートするために必要なソート情報を提供するクラスのインターフェイスを定義します。

関連する API エレメント



パブリックプロパティ
 プロパティ定義元
  compareFunction : Function
ソート時にアイテムを比較するために使用するメソッドです。
ISort
  fields : Array
比較するフィールドを指定する ISortField オブジェクトの配列です。
ISort
  unique : Boolean
ソートが一意であるかどうかを示します。
ISort
パブリックメソッド
 メソッド定義元
  
findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
指定された配列内(要求された場合は挿入ポイント)で指定されたオブジェクトを検索し、見つかった場合はインデックス、見つからなかった場合は -1 を返します。
ISort
  
指定されたプロパティを使用してソートを制御するかどうかを返します。
ISort
  
fields 配列を通過して、配列内の ISortField オブジェクトごとに reverse() を呼び出します。
ISort
  
sort(items:Array):void
指定された配列(配列のコピーではない)に現在のソートを適用します。
ISort
プロパティの詳細

compareFunction

プロパティ
compareFunction:Function

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

ソート時にアイテムを比較するために使用するメソッドです。 このプロパティを指定すると、このクラスで使用する ISortField オブジェクトに指定した compareFunction プロパティはすべて無視されます。

比較関数には次のシグネチャが必要です。


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

この関数は、以下を返す必要があります。 value:

  • Object aObject b の前に現れるソート順の場合は -1
  • Object aObject b と等しい場合は 0
  • Object aObject b の後に表示されるソート順の場合は 1

内部比較関数に戻すには、この値を null に設定します。

fields 配列は、比較するオブジェクトフィールドを指定します。 通常は、フィールドリストを使い果たすか、ゼロではない値が返されるまで、このアルゴリズムはプロパティを比較します。次に実際の使用例を示します。


        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;
        }
      

デフォルト値は、ストリング、数値、日付を比較できる内部比較関数です。この比較関数では、昇順または降順での比較が可能です。 カスタム比較アルゴリズムが必要な場合にのみ、独自の関数を指定します。 このことは、通常、計算フィールドが表示で使用される場合にのみ該当します。

また、ISortField クラスの compareFunction プロパティを使用することで、各ソートフィールドに対して個別の比較関数を指定することもできます。こうすれば、一部のフィールドにデフォルトの比較関数を適用し、別のフィールドには独自の比較関数を適用することが可能となります。



実装
    public function get compareFunction():Function
    public function set compareFunction(value:Function):void

fields

プロパティ 
fields:Array

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

比較するフィールドを指定する ISortField オブジェクトの配列です。配列内の ISortField オブジェクトの順序によって、ソート時のフィールドの優先順位が決まります。 デフォルトのソートコンパレータは、比較する 2 つのフィールドのソート順が決定するまで、配列順にソートフィールドをチェックします。

デフォルト値: null。



実装
    public function get fields():Array
    public function set fields(value:Array):void

関連する API エレメント

unique

プロパティ 
unique:Boolean

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

ソートが一意であるかどうかを示します。 フィールドプロパティのフィールドにより指定された値また組み合わせ値が不確定なソート順または一意ではないソート順になる場合、つまり複数のアイテムが同じソートフィールド値を持つ場合は、一意のソートは失敗します。ソートが一意でない場合は、エラーがスローされます。ソートロジックでこの unique プロパティ値が使用されるのは、ソートフィールドが明示的に指定されている場合のみです。ソートフィールドが明示的に指定されていない場合、同一値のエレメントがある場合でもエラーはスローされません。

デフォルト値: false。



実装
    public function get unique():Boolean
    public function set unique(value:Boolean):void
メソッドの詳細

findItem

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

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

指定された配列内(要求された場合は挿入ポイント)で指定されたオブジェクトを検索し、見つかった場合はインデックス、見つからなかった場合は -1 を返します。 ListCollectionView クラスの findxxx() メソッドはこのメソッドを使用して、要求されたアイテムを検索します。基本的に、ListCollectionView ベースのオブジェクトからデータを検索する場合は、findItem() ではなく、これらの関数を使用するほうが簡単です。findItem() メソッドは、新しい ICollectionView 実装のような、ソートをサポートするクラスを記述する場合に直接呼び出します。この関数を呼び出す前に、入力アイテム配列をソートしておく必要があります。未ソートの場合、この関数は指定した値プロパティを正しく検索することができません。

パラメーター

items:Array — 検索する配列です。
 
values:Object — 検索するプロパティを含むオブジェクトです(または検索対象のオブジェクト自身)。 オブジェクトは、フィールド名と値のペアで作成します。フィールド名は fields プロパティで指定したフィールドの名前であり、このプロパティに指定したとおりの順序になります。 fields プロパティのすべてのフィールドを指定する必要はありませんが、順序を飛ばすことはできません。 したがって、fields プロパティに 3 つのフィールドが指定されている場合は、その 1 番目と 2 番目のフィールドをこのパラメーターに使用することはできますが、1 番目と 3 番目だけを指定することはできません。
 
mode:String — 実行する検索の種類を含むストリングです。 有効な値は次のとおりです。
ANY_INDEX_MODE値が見つかったいずれかの位置を返します。
FIRST_INDEX_MODE値が最初に見つかった位置を返します。
LAST_INDEX_MODE指定された値が最後に見つかった位置を返します。
 
returnInsertionIndex:Boolean (default = false)values パラメーターに指定されたアイテムが見つからない場合、このパラメーターが true に設定されていると、findItem() メソッドは値の挿入ポイント(ソートされた順序でのアイテムの挿入位置)を返します。
 
compareFunction:Function (default = null) — アイテムの検索に使用するコンパレータ関数です。 このパラメーターを指定しなかった場合または null 値を指定した場合、findItem() 関数は、ISort インスタンスの compareFunction プロパティによって決定された比較関数を使用します。この場合、値オブジェクトと現在の SortFields によって決定されたフィールド配列が渡されます。null 以外の値を指定した場合、findItem() 関数は、その値を比較関数として使用します。compareFunction として渡される関数のシグニチャは次のとおりである必要があります。function myCompareFunction(a:Object, b:Object):intISort.compareFunction() プロパティの比較関数とは異なり、3 番目の引数はありません。

戻り値
int — int は、見つかったアイテムの配列内のインデックスです。 returnInsertionIndex パラメーターが false で、アイテムが見つからない場合は、-1 を返します。 returnInsertionIndex パラメーターが true で、アイテムが見つからない場合は、ソートされた配列内の値が挿入される位置のインデックスを返します。

例外
Error — パラメーターエラーの発生は、検索条件とソートに互換性がないか、ソートのコンパレータ関数を判別できないことを意味しています。

propertyAffectsSort

()メソッド 
public function propertyAffectsSort(property:String):Boolean

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

指定されたプロパティを使用してソートを制御するかどうかを返します。 ソートにカスタムコンパレータが使用されると、この関数は決定的な結果を判断できません。この場合は、常に true を返します。

パラメーター

property:String — テストするフィールドの名前です。

戻り値
Boolean — プロパティ値がソート結果に影響を与えるかどうかを指定します。 ソートでデフォルトの compareFunction が使用される場合、true が返されるのは、property パラメーターがソートフィールドを指定する場合です。 ソートまたは ISortField でカスタムコンパレータが使用されると、確認する方法はないので、true を返します。

reverse

()メソッド 
public function reverse():void

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

fields 配列を通過して、配列内の ISortField オブジェクトごとに reverse() を呼び出します。フィールドが降順の場合は昇順になり、昇順の場合は降順になります。

メモ:ICollectionView は、fields 配列内のオブジェクトが変更されても自動的には更新されません。ビューを更新するには、refresh() メソッドを呼び出します。

sort

()メソッド 
public function sort(items:Array):void

言語バージョン: ActionScript 3.0
製品バージョン: Flex 4.5
ランタイムバージョン: Flash Player 9, AIR 1.1

指定された配列(配列のコピーではない)に現在のソートを適用します。 配列が変更されないようにするには、コピーを作成し、そのコピーを items パラメーターで使用します。

ICollectionView 実装は、sort メソッドを自動的に呼び出し、基になるデータのコピーに対してソートが行われるようにします。

パラメーター

items:Array — ソートするアイテムの配列です。





[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。