JavaScript :: Sorting Array Of Items (with X / Y Properties)
Nov 13, 2011
Each item in the array in on the stage, each with an x/y position. The item in the top left most position should be items[0]. X should be the primary. Originally I was thinking along the lines of:
var items = [m1, m2, m3, m4, m5, m6];
items.sort(sortMe);
function sortMe(a, b) {
return (b.position[0] - a.position[0]) && (b.position[1] - a.position[1]);
}
But this does not yield the correct results.
I have an array of objects. Each object has a color attribute which could be "red", "blue", "yellow", "green", "orange" or "purple". There are 20-30 objects in the array so colors repeat. My goal is to sort the array so that no colors are next to each other. Distribution of colors is not exactly even but close.
This is what I have so far. It checks the next and previous object for a color match and if it finds a match it moves it to the end of the array.
private function sortColors():void { var getNext:uint; var getPrev:uint;
[Code].....
This works OK but if there is more of a certain color they end up repeating at the end. I could add something to the end to throw those back into the mix but I feel like there must be a better way.
How do I remove an items from a data bound array? My code follows. for(var i = 0; i < listBox.selectedIndices.length; i++) { var toRemove = listFiles.selectedIndices[i]; dataArray.splice(toRemove, 1);
Here is my swf. The Add Photos works except when you remove items. [URL] Add 3 photos different. Remove 2nd photo. Add a different photo. SWF adds the 2nd photo to the end.
Here is my code private function OnSelectFileRefList(e:Event):void { Alert.show('addstart:' + arrayQueue.length); for each (var f:FileReference in fileRefList.fileList) { var lid:ListItemData = new ListItemData(); lid.fileRef = f; arrayQueue[arrayQueue.length]=lid; [Code] .....
Quick Question, I just started learning the psuedo 3D methods in FP10, and as a sample I am creating a virtual rolodex. It is dynamically generated with a user inputted number of cards. The cards are then added to the stage and are rotated around a central axis using the function below.
[Code]....
After this is created I have an Enter Frame listener that rotates the cards around that axis based on mouse position. Problem is that they get depth sorted based on the order that they are created, cardArray[0] in back all the way up to whatever the number of cards is. I have tried a few of the simple Z sorting classes and noticed that my cards dont actually change there Z property, only their rotationX. I was just wondering if anyone might know of an easy way to depth sort these. Otherwise the best idea I can come up with is to check the rotation based on 360 degrees and assign a depth. That seems like a lot of ugly math though if you want to see what the swf looks like check here.
iSo let's say I have three different arrays of objects, and I want to combine them into one sorted array. I want the order to be such that the items from each array are evenly distributed throughout the sorted array.
If there were 3 xItems, 3 yItems, and 3 zItems, the sorted array would have this order: x, y, z, x, y, z, x, y, z
HOWEVER, even if the arrays are differing lengths, I still need to make them alternate as much as possible. If there were 6 xItems, 4 yItems, and 2 zItems, the sorted array should have this order: x, y, x, y, x, z, x, y, x, y, x, z
However, i could not sort the subTopic, as it gkeep giving me undefined. Is there any way to sort this subTopic, such that they are in alphabetical orders?
how to reorder an array based on the information contained in another array. What my script is currently doing is detecting all the attached monitors I have and then ordering them based on their left bounds. However I then want to reorder the screens location in the array based on whether the user has selected that display or not. If the user has selected it, by clicking a button, the button movie clip will be on frame two, if they haven't been chosen it will be on frame one. So what I am doing is then creating two separate arrays, chosen screens and not chosen screens, and then combining them into one.
Code: if(displayButton.currentFrame==displayButton.totalFrames) { //sort the chosen ones into an array
[Code]....
My problem now is being able to reorder a separate array which contains all the screens, called screenArray, based off of that. screenArray currently returns [Object Screen], [Object Screen], [Object Screen], etc... and is in the order of 1,2,3,4,5,6. How do I take then and get it to be equal to the order of my displayButtonsChosen Array of 1,3,5,2,4,6?
Basically, I have a menu created using XML. Each menu item has a fill that fades in and out as the user scrolls over them. What I want to happen is that when an item is clicked, it stays highlighted. The problem comes when I click on the second item. I can't get the first item to "unselect."Here is the menu code and functions.
Code: var menuHolder:MovieClip = new MovieClip(); menuHolder.x = myMask.x;
Trying to re-sort an array of objects from: var arr:Array = new Array({num:0},{num:1},{num:2},{num:3}) to var arr:Array = ({num:0},{num:3},{num:1},{num:2})
have a twodimensional array that consists of 6 other arrays(like array[0 to 5][0 to 4]). The [4] of each sub-array is a indexnumber that i'd like to use for sorting the array[0][x] toarray[5][x] according to their array[x][4]-value. How would I do
How would I do to sort this array by the largest sum and not just the first number? var myArray:Array = new Array(100, 200, 9); myArray.sort(Array.DESCENDING) //puts out (9, 200, 100) How would I do to get it (200, 100, 9)?
I am loading data from an xml file into several different arrays. Once its all information is in the arrays I then sort one of the arrays (called percentage) numerically from highest to lowest. What I can't figure out is how to reflect the changes in position in the other arrays to what has happened in the percentage array.
I am trying to sort an array that is generated thru an xml file.
The XML has "sections" that are used to generate a different view type, it is NOT used here but is needed for other features. What IS used is the artist name & ID. This function takes the data from XML and takes the name and ID from each section and puts it into 2 separate Arrays, "nameArr" and "noArr". After these two new arrays are created they are sent into an object "sectionData". The objects are then sent into a new Array "multiArr". This looks a little overkill but it is needed to create a new array without the section info.
I am trying to sort this new array multiArr using the "sortOn" method by "ID" to sort it by id but it is not working. It doesn't sort the array.
ActionScript Code: public function setListData( data:Array ) { var sectionData:Object = {};
I'm using Insertion sort on a partially sorted array:
ActionScript Code: for(i=0;i<productArray.length;i++) { var val:Product = productArray[i];
[Code].....
The problem is that since products are removed from time to time, my array may contain null references for some indexes. Thus the above algorithm will throw an error in runtime.
Usually I'd just do a quick check i.e.
if(productArray[i] != null)
and I'd be fine, but in this case I'm constantly checking properties in the while loop and I'm not really sure how to go about doing this.
I want this to be sorted by first name only: "John Smith 18", "Charlotte Smith 59", "Chris Doe 26", "Tony Jordan 100", "Charlotte Roberts 17", "Imad Hanna 26", "Charlotte Smith 13"
I can get it sort sort alphabetically just by using .sort(), but it takes into account the last name as well.
I am creating a visual map in flash of my database bookings table. I have my xml loaded into AS3 and I think that the next stage is to sort the data by the room numbers and place the data into separate arrays, how do I approach this?
I have an array of objects (the first member of each object is a string which records the object's name) The other members of the objects contain various numerical information. I need to sort each category of information and display the names next to their related information in correct numerical order:
ie. AName 4235 AnotherOne 3962 OneMore 1576
Can anyone suggest some code which would do this? I checked out .sort and .onSort, built in methods of array but I can't get my head round it.There are thirteen objects in my array. The fourth element (population) needs to be sorted.
I have a function inside a class that will basically sort an array by the first elements first sub-element (ie. [0][x]) and return the second sub element based on that information. I am having the hardest time getting it to work. Partially because I feel that it is inside a class. Also I feel like it sorts the sub elements individually whereas I would need to keep the sub-element pairs together. Here is some of the code.
I have a multidimensional array that looks like this:[code]what I am trying to do is sort the mc.names into order based on what the value of Tracker[mc.name][0] is. (if that makes sense)I am looking at the : SampleArray.sortOn("0",Array.NUMERIC); but it doesnt seem to work as I had hoped, so im not sure if im doing something wrong or just not understanding how it works etc.I just need the mc.name's to be reordered into the numerical order from the numbers in the[0] and keep the right mc.name with the numbers.
var dataArray:Array = [ 5, 6, 3, 8, 10, 11, 32, 2 ]; var dataObjectArray:Array [ { "uid": 5 }, { "uid": 6 .... Similar to above ... } ]; I have the above 2 arrays in AS3. and i wish to sort them numerically (1 ~ X) in order [Skipping those that does not exist]. What is the best and most efficient way to do so for dataArray / dataObjectArray.
I wondering anyone can help me in need to sort the parent elements of a dynamically populated multidimensional array on the elements I have highlighted red:[code]