val2) return 6; else if(val1==val2) return 4; else return 2; } public function mySortCompareFunction(item1:Object, item2:Object, fields:Array=null):int { var fdName:String=fields[0].name; var aStr:String = item1[fdName] ; var bStr:String = item2[fdName] ; if ( aStr == null && bStr == null ) return 0 ; if (aStr.length > bStr.length) return 1 ; else if ( aStr.length == bStr.length) return 0 ; else return -1 ; } public function noParameterCompare():int { return 2; } public function wrongReturnTypeCompare(val1:*,val2:*,fields:Array):String { return "result"; } public function trySet(obj:*,pptName:String,val:*, mode:String):void { try{ obj[pptName]=val; }catch(e:Error){ if(mode=='spark') err=e.toString(); else errMX=e.toString(); } } public function doit(mySort:spark.collections.Sort):void { dataComp.myMXNameAgeStrArr.sort=mySort; dataComp.myMXNameAgeStrArr.refresh(); Alert.show(SFConstant.getArrayOfField('name',dataComp.myMXNameAgeStrArr).toString()); } ]]>