/ Published in: ActionScript
an external javascript sort function, which you can import into flash to help sort arrays of objects. include the script thus:
#include "objSort.js"
#include "objSort.js"
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/* objSort v 1.1 copyright 2006 Thomas Frank This program is free software under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. It is distributed without any warranty. */ tfObjSort={ init:function(){ Array.prototype.objSort=function(){ tfObjSort.setThings(this); var a=arguments; var x=tfObjSort; x.a=[];x.d=[]; for(var i=0;i<a.length;i++){ if(typeof a[i]=="string"){x.a.push(a[i]);x.d.push(1)}; if(a[i]===-1){x.d[x.d.length-1]=-1} } return this.sort(tfObjSort.sorter); }; Array.prototype.strSort=function(){ tfObjSort.setThings(this); return this.sort(tfObjSort.charSorter) } }, sorter:function(x,y){ var a=tfObjSort.a var d=tfObjSort.d var r=0 for(var i=0;i<a.length;i++){ if(typeof x+typeof y!="objectobject"){return typeof x=="object"?-1:1}; var m=x[a[i]]; var n=y[a[i]]; var t=typeof m+typeof n; if(t=="booleanboolean"){m*=-1;n*=-1} else if(t.split("string").join("").split("number").join("")!=""){continue}; r=m-n; if(isNaN(r)){r=tfObjSort.charSorter(m,n)}; if(r!=0){return r*d[i]} } return r }, charSorter:function(x,y){ if(tfObjSort.ignoreCase){x=x.toLowerCase();y=y.toLowerCase()}; var s=tfObjSort.chars; if(!s){return x>y?1:x<y?-1:0}; x=x.split("");y=y.split("");l=x.length>y.length?y.length:x.length; var p=0; for(var i=0;i<l;i++){ p=s.indexOf(x[i])-s.indexOf(y[i]); if(p!=0){break}; }; if(p==0){p=x.length-y.length}; return p }, setThings:function(x){ this.ignoreCase=x.sortIgnoreCase; var s=x.sortCharOrder; if(!s){this.chars=false;return true}; if(!s.sort){s=s.split(",")}; var a=""; for(var i=1;i<1024;i++){a+=String.fromCharCode(i)}; for(var i=0;i<s.length;i++){ z=s[i].split(""); var m=z[0]; var n=z[1]; var o=""; if(z[2]=="_"){o=n+m} else {o=m+n}; a=a.split(m).join("").split(n).join(o); }; this.chars=a } }; tfObjSort.init();
URL: http://www.thomasfrank.se/sorting_things.html