BETA ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Hide Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes

Language Reference only
Filters: AIR 32.0 and earlier, Flash Player 32.0 and earlier, Flash Lite 4
None
Hide Filters
spark.collections 

Sort  - AS3 Flex

Packagesx

Top Level
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.consulting.pst.vo
com.adobe.dct.event
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.impl
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.importexport
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.mosaic.core
com.adobe.mosaic.core.events
com.adobe.mosaic.core.validators
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skins.aqua
com.adobe.mosaic.skins.aqua.organizer
com.adobe.mosaic.skins.aqua.tile
com.adobe.mosaic.skins.aqua.util
com.adobe.mosaic.skins.aqua.view
com.adobe.mosaic.skins.aqua.viewManager
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.endpoint
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses

Language Elements

Global Constants
Global Functions
Operators
Statements, Keywords & Directives
Special Types

Appendixes

What's New
Compiler Errors
Compiler Warnings
Run-Time Errors
Migrating to ActionScript 3
Supported Character Sets
MXML Only Tags
Motion XML Elements
Timed Text Tags
List of deprecated elements
Accessibility Implementation Constants
How to Use ActionScript Examples
Legal notices
(Preview)
Packagespark.collections
Classpublic class Sort
InheritanceSort Inheritance AdvancedStyleClient Inheritance EventDispatcher Inheritance Object
Implements ISort

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

Provides the sorting information required to establish a sort on an existing view (ICollectionView interface or class that implements the interface). After you assign a Sort instance to the view's sort property, you must call the view's refresh() method to apply the sort criteria.

Typically the sort is defined for collections of complex items, that is collections in which the sort is performed on one or more properties of the objects in the collection. The following example shows this use:


     var col:ICollectionView = new ArrayCollection();
     // In the real world, the collection would have more than one item.
     col.addItem({first:"Anders", last:"Dickerson"});
 
     // Create the Sort instance.
     var sort:ISort = new Sort();
 
     // Set the sort field; sort on the last name first, first name second.
     var sortfieldLastName:ISortField = new SortField("last",true);
     var sortfieldFirstName:ISortField = new SortField("first",true);
 
     // Set the locale style to "en-US" to cause the strings
     // to be ordered according to the rules for English as used in the USA.
     sortfieldLastName.setStyle("locale","en-US");
     sortfieldFirstName.setStyle("locale","en-US");
     sort.fields = [sortfieldLastName, sortfieldFirstName];
 
     // Assign the Sort object to the view.
     col.sort = sort;
 
     // Apply the sort to the collection.
     col.refresh();
  

There are situations in which the collection contains simple items, like String, Date, Boolean, etc. In this case, apply the sort to the simple type directly. When constructing a sort for simple items, use a single sort field, and specify a null name (first) parameter in the SortField object constructor. For example:


     import mx.collections.ArrayCollection;
     import spark.collections.Sort;
     import spark.collections.SortField;
 
     var col:ICollectionView = new ArrayCollection();
     col.addItem("California");
     col.addItem("Arizona");
     var sort:Sort = new Sort();
 
     // There is only one sort field, so use a null 
     // first parameter. 
     var sortfield:SortField = new SortField("null",true);
 
     // Set the locale style to "en-US" to set the language for the sort.
     sortfield.setStyle("locale","en-US");
     sort.fields = [sortfield];
     col.sort = sort;
     col.refresh();
  

The Flex implementations of the ICollectionView interface retrieve all items from a remote location before executing a sort. If you use paging with a sorted list, apply the sort to the remote collection before you retrieve the data.

The default comparison provided by the SortField class provides correct language specific sorting for strings. The language is selected by the setting the locale style on an instance of the class in one of the following ways:

  • By using the class in an MXML declaration and inheriting the locale from the document that contains the declaration.
  • Example:
      <fx:Declarations> 
             <s:SortField id="sf" /> 
      </fx:Declarations>
      
  • By using an MXML declaration and specifying the locale value in the list of assignments.
  • Example:
      <fx:Declarations> 
          <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> 
      </fx:Declarations>
      
  • Calling the setStyle method, e.g. sf.setStyle("locale", "zh-Hans-CN")
  • Inheriting the style from a UIComponent by calling the UIComponent's addStyleClient() method.

MXML SyntaxexpandedHide MXML Syntax

The <s:Sort> tag has the following attributes:

  <s:Sort
  Properties
  compareFunction="Internal compare function"
  fields="null"
  unique="false | true"
  />
  

In case items have inconsistent data types or items have complex data types, use of default built-in compare functions is not desired. Inconsistent sort result may occur in such cases. To avoid such problem, provide custom compare function and/or make item types consistent.

Default MXML Propertyfields

View the examples

More examples

Related API Elements



Public Properties
 PropertyDefined By
  compareFunction : Function
The method used to compare items when sorting.
Sort
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  fields : Array
An Array of ISortField objects that specifies the fields to compare.
Sort
  unique : Boolean
Indicates if the sort should be unique.
Sort
Public Methods
 MethodDefined By
  
Constructor.
Sort
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
Finds the specified object within the specified array (or the insertion point if asked for), returning the index if found or -1 if not.
Sort
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
  
Return whether the specified property is used to control the sort.
Sort
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
  
Goes through the fields array and calls reverse() on each of the ISortField objects in the array.
Sort
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
  
sort(items:Array):void
Apply the current sort to the specified array (not a copy).
Sort
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
Styles

Styles are either common or associated with a specific theme. If the style is common, it can be used with any theme. If a style is associated with a specific theme, it can only be used if your application uses that theme.

Common Styles
 Style Description Defined By
  
locale
Type: String CSS Inheritance: Yes
Language Version: ActionScript 3.0  Product Version: Flex 4.5  Runtime Versions: Flash10.1, AIR 2.5

The locale identifier that specifies the language, region, script and optionally other related tags and keys. The syntax of this identifier must follow the syntax defined by the Unicode Technical Standard #35 (for example, en-US, de-DE, zh-Hans-CN).

For browser based apps, the default locale is based on the language settings from the browser. (Note that this is not the browser UI language that is available from Javascript, but rather is the list of preferred locales for web pages that the user has set in the browser preferences.) For AIR applications, the default UI locale is based on the user's system preferences.

Learn more

Sort
Public Constants
 ConstantDefined By
  ANY_INDEX_MODE : String = "any"
[static] When executing a find return the index any matching item.
Sort
  FIRST_INDEX_MODE : String = "first"
[static] When executing a find return the index for the first matching item.
Sort
  LAST_INDEX_MODE : String = "last"
[static] When executing a find return the index for the last matching item.
Sort
Property Detail
Constructor Detail
Method Detail
Constant Detail
SortExample1.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               minWidth="955" minHeight="600">
    <!-- Sample program for spark.collections.Sort and SortField --> 
    <fx:Declarations>
        <s:Sort id="sortbyLastName_FirstName">
            <s:fields>
                <s:SortField name="last"/>
                <s:SortField name="first"/>
            </s:fields>
        </s:Sort>
        <mx:ArrayCollection id="collection" sort="{sortbyLastName_FirstName}">
            <mx:source>
                <fx:Object first="Anders" last="Dickerson"/>
                <fx:Object first="Eileen" last="Maccormick"/>
                <fx:Object first="Aiden" last="MacCormick"/>
                <fx:Object first="Steve" last="MacGregor"/>
            </mx:source>
        </mx:ArrayCollection>
    </fx:Declarations>
    
    <s:VGroup>
        <s:VGroup>
            <s:HGroup>
                <s:Label text="Input Locale ID Name: "/>
                <s:TextInput id="inputLocaleIDName"/>
                <!-- 
                Sets the locale style on the document UI component.
                The SortField and Sort objects defined in the 
                fx:Declarations section will inherit this style.
                -->
                <s:Button click="{setStyle('locale', inputLocaleIDName.text); 
                          collection.refresh()}" label="Apply"/>
            </s:HGroup>
            <s:Label text="Example: 'en-US', 'fr-FR', 'zh-CN', 'ar-SA'"/>
        </s:VGroup>
        <s:DataGrid dataProvider="{collection}" width="100%"
                     creationComplete="{collection.refresh()}">
            <s:columns>
                <s:ArrayList>
                    <s:GridColumn dataField="last"/>
                    <s:GridColumn dataField="first"/>
                </s:ArrayList>
            </s:columns>
        </s:DataGrid>
    </s:VGroup>
</s:Application>
SortExample2.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               minWidth="955" minHeight="600"
               creationComplete="initApp()">
    <!-- Sample program for spark.collections.Sort and SortField -->    
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import spark.collections.*;
            [Bindable]
            private var collection:ArrayCollection = new ArrayCollection();
            
            private function localeChange():void
            {
                // Sets the locale style on this application.
                // The SortField objects will inherit this style.
                setStyle('locale', inputLocaleIDName.text);
                collection.refresh();
            }

            private function initApp() : void
            {
                // Add data to the collection.
                collection.addItem({first:"Anders", last:"Dickerson"});
                collection.addItem({first:"Steve", last:"Maccormick"});
                collection.addItem({first:"Aiden", last:"MacCormick"});
                collection.addItem({first:"Eileen", last:"MacGregor"});
                
                // Create the Sort instance.
                var sort:Sort = new Sort();
                
                // Set the sort field; sort on the last name first, first name 
                // second.
                var sortfieldLastName:SortField = new SortField("last",true);
                var sortfieldFirstName:SortField = new SortField("first",true);
                sort.fields = [sortfieldLastName, sortfieldFirstName];
                
                // Add the sort field objects to this application's list of
                // style clients.  This will cause the sort field objects to 
                // inherit the locale style from this Application. 
                addStyleClient(sortfieldLastName);
                addStyleClient(sortfieldFirstName);
                
                // Assign the Sort object to the view.
                collection.sort = sort;
                
                // Apply the sort to the collection.
                collection.refresh();
            }
        ]]>
    </fx:Script>
    
    <s:VGroup>
        <s:VGroup>
            <s:HGroup>
                <s:Label text="Input Locale ID Name: "/>
                <s:TextInput id="inputLocaleIDName"/>
                <s:Button click="localeChange()" label="Apply"/>
            </s:HGroup>
            <s:Label text="Example: 'en-US', 'fr-FR', 'zh-CN', 'ar-SA'"/>
        </s:VGroup>
        
        <s:DataGrid dataProvider="{collection}" width="100%"
                     creationComplete="{collection.refresh()}">
            <s:columns>
                <s:ArrayList>
                    <s:GridColumn dataField="last"/>
                    <s:GridColumn dataField="first"/>
                </s:ArrayList>
            </s:columns>
        </s:DataGrid>
    </s:VGroup>
</s:Application>