ActionScript 3.0 :: Destructively Combine Associative Arrays
Aug 24, 2010Took me a while to figure this one out, and no good results via google.[code]...
View 3 RepliesTook me a while to figure this one out, and no good results via google.[code]...
View 3 RepliesI have regarding associative arrays. Basically, I'm trying to use the current index of a for loop, which is looping through xml attributes, as the key for an associative array.
[Code]...
I was trying something out, and came across a little error. I wrote the following code to create an array and, using each value of that array, create an associative array for the values of xVelocity and yVelocity.[code]But I get an error from that as well. I think I understand basically why this doesn't work, but I'm wondering if, given the spirit of what I'm trying to do, you can think of a working alternative.
View 3 RepliesI have an associative array.
Actionscript Code:
myArray = {car:"Ford",type:"Mustang"},{car:"Chevy",type:"Camaro"});
Now if I wanted to add data to the indexes how would I do it?
For instance I now want to add years 1985,and 2000 to the index 0 and 1.
I'm trying to send an object to javascript that can have an arbitrary number of elements included, including associative arrays. If I create the following object:[code]The numeric indexes of the array will trace out, while the string based indexes will not. Does anyone have any idea why this might not be working? (Running CS4, I can't find the option to change my signature)
View 3 RepliesFirst I need to come up with a storage mechanism that looks something like this
x coord: 124 y coord 26 color: orange
x coord: 13 y coord 54 color: orange
x coord: 14 y coord 14 color: orange
x coord: 124 y coord 46 color: orange
x coord: 154 y coord 26 color: black
x coord: 12 y coord 21 color: orange
Secondly I need to know how to run a test to see if there is already an entry in that list that has the mouses current coordinates, and if it doesn't, it places a new entry with the mouses coordinates with the current color variable which will be a variable that flcikers back and forth between black and orange based on a timer that runs separately. I know that forEach will be involved and I know that what I am working with will be called an associative array.
I'm trying to use associative arrays to store my variables but am looking for a solution to change the value of array1[i] to array2[i]. Since it's an associative array, the only way I know how to loop through these kinds of arrays is by the following:
Code:
for(var i in array1) {
trace(array1[i];
}
What I would do when using indexed arrays to change the value of array1[i] to array2[i] would be something like this:
Code:
for(i=0; i<array1.length; i++) {
array1[i] = array2[i];
}
However, I can't see any way you can do this with associative arrays because they do not have a numbered index such that in a loop you could
say array1[i] = array2[i] .
So I'm looking for a way to do this with associative arrays.
I have had a long post somewhere on here and just wanted to start a specific post on just associative arrays. First of all I have an array which I don't know if it's an array or an associative array or an object or both. ie: I read that the below would be an object but works as an array too.
The problem is when I use this array as references to instantiate classes in a runtime shared library.I seem to be able to create the appropriate arrays and objects BUT I definately can't use/acess them properly. I massive confusion between movieclips and objects. I get a forced conversion error when I try to add objects to a movieclip . simply because I want to add the mc elements to the stage.
[Code]...
what's a simple way to combine arrays with as3? by combine, i mean that contents of one array are pushed into another array.I already tried a for loop and push.
View 6 RepliesI am running into some trouble adding an array into another array to create a multi-dimensional array.The code appears as below:
var slideDataArray:Array = new Array();
var slideShowDataArray:Array = new Array();
slideDataArray[0] = xmlData.SlideShowParameters.SlideShowImagesDirectory;[code]........
I am looking for a means of placing the slideDataArray into a 'slot' or value of slideShowDataArray so that I can in the end pass the slideShowDataArray as a parameter to another function.As of now, the last slideDataArray appears 11 times (the loop runs 11 times) in slideShowDataArray and the way the code is written the slideDataArray is unique every iteration of the loop.
I've got a bit that loads a big chunk of xml data about products.I push product info into an array(e.g. productArray), then add that array to another array (e.g. allProductsArray)How do I sort those arrays? For instance, if I want to sort the allProductsArray based on the info in productArray[0]?Alternatively, would something other tha an array of arrays be a better route?This loader loads the same sort of info for many different clients, so the bit to sort on will change.
View 5 RepliesI'm trying to write a function where I can specify any amount of array, and the return value will be an array containing the contents of all of the specified arrays.I've done this, but it seems like a really slow and ugly way of doing it:
var ar1:Array = [1,2,3,4,5,6,7,8,9];
var ar2:Array = ['a','b','c','d','e','f','g','h'];
function merge(...multi):Array[code].....
Is there an inbuilt and more efficient / nice way of achieving this? The result does not need to be in the same order as the input - completely unsorted is fine.
A little explanation: Im making a random arranging number Array. So instead of using a loop and assigning 0 to first array element, 1 to second, etc.I need to make it totally random but without repeating any numbers. To do that I made a second Array that will have the same number of children to serve as a reference.Each of them will be an Object with a property "num" , wich will be its actual number, and a property "called" wich defaults to false.Like this:
ActionScript Code:
for(var i:int=0;i<vQuantity;i++){
ranArray.push( new Object() );
[code].......
I've had a problem for awhile that was really odd. After some intense debugging, I realized the problem lied in setting an array equal to another array.[code] When setting one array equal to another, the values aren't copied over, but a reference to that memory is stored. So no matter which variable you change, they are both references to the same memory and thus both will reflect the changes.With other data types, this doesn't happen.I could fix it by looping through t1 and using push() to add each index from t1 into t2, but that seems a little messy.
View 7 Repliescorrect syntax for pushing variables to arrays within arrays? I have searched many threads but found nothing that exactly answers my query.I have a class (Brigade) which amongst other variables contains an array (BrigadeUnits) This is the third element.. My Brigades are stored in an array called AllBrigades. I now need to fill the BrigadeUnits array with objects of my Units class.The hierarchy I want to create is as follows:
AllBrigades (array of Brigades)
Brigade (object)
BrigadeUnits (array within Brigade object)
Unit (Object to be stored in BrigadeUnits array)
I have tried various approaches including the following, assuming that I am addressing the first Brigade in the array:
AllBrigades [0] [2].push (MyUnit);
But when I trace this I just get undefined.
The great thing about vectors is the data typing / autoComplete.. The thing about them that I hate is the numeric index and the resource intensive retrieval methods you need to pull an element.
so with objects:
myObject["myObjectKey"]
is great, fast, etc. BUT there's no data typing myVector[0].myProperty is fantastic for auto complete, but there's no quick index, instead a bunch of for loop logic that can get really messy in more complicated data models where there are a lot of relationships. Does anybody know of an elegant hybrid solution aside from things like
var myProperty:MyFavoriteDataModel = myObject["myProperty"] as MyFavoriteDataModel;
I have an associative array that I want to display using TileList. However, it doesn't understand what is being fed to it. All I got is [object] in the TileList.
[bindable]
public var people as array = new array();
private function loadArray():void{
[code].....
I am able to save file using a local sharedObject.
Code:
note_so = SharedObject.getLocal("notes");
note = note_mc.notetitle_txt.text +"~"+ note_mc.note_txt.text;
[code].....
I'd like to use a variable for the field name of the associative array, but my brain is not remembering what I did long time ago when I needed it.
[Code]...
I am writing to ask if there is anyone on the list tried to find out the index of elements of an associative array.
[Code]....
See, these are all part of regions array, which I believe is an associative one by the way I constructed it. I tried to use indexOf to find out the index of the individual elements, but don't seem to have too much luck.
ActionScript Code:
for (var s:String in regions) trace("
" + indexOf(s));
Right now, this does not bring me a thing. Have I done something wrong here?
I have been following tutorials but they don't seem to cover exactly what I'm doing.I have an associative array of values called definitionsArray which I use as references to instantiate classes in a run time shared library.I instantiate and push the object into a new array. The problem is when I try to access or do anything basically with that new array.As they are objects they don't seem to like being in a display list for example.
ActionScript Code:
var definitionsArray:Array;
var bubblesArray:Array;
[code].....
I have this array
myarray['array1'] = 321;
myarray['array2'] = 123;
myarray['array3'] = 213;
How can I get this order by value asc like this?
myarray['array2'] = 123;
myarray['array3'] = 213;
myarray['array1'] = 321;
I have loaded XML into flash and everything is great. I have an Associative Array that makes a dynamic menu and everything is great.
What I would like to do is combine the two and have my loaded XML fill up the Array and the dynamic menu.
Here is the XML portion:
Actionscript Code:
//Importsimport flash.net.URLLoader;import flash.net.URLRequest;import flash.events.Event;//Create XMl variablevar teamsXML:XML;//Create URL Loadervar xmlLoader:URLLoader = new URLLoader();//Tell the URLLoader named XMlLoader to listen for the xml //file to finish loading, then run the function
[Code]....
Is it possible to create an associative array w/o using a variable to pass it as parameter to a function?[code]...
View 1 RepliesIs there a test to see if an Object is an associative array?
View 2 Repliesin many programming languages there is this great idiom that lets you use a hash to count occurrences of items. Eg in Perl, suppose you have a list of students and you want to see how many of each name you have (2 Bobs, 1 Jeremy, 22 Aidans etc):
my %uniqueNames;
for (@studentNames){ $uniqueNames{$_}++; }
# print it out[code]....
So you can do this in ActionScript 3 of course, using the Object.The problem is NaN. If you try to autocreate and autoincrement a key at the same time, you get NaN, and the whole thing breaks down.Sure, you can use a conditional to test whether the key exists, and then autoincrement it, or set it to one if not, but that's ugly.
studentNames[name] = studentNames[name] ? studentNames[name] + 1 : 1; // shudder
I have a multidimentional array already made, brought in from a CSV file via csvlib
I also have the headers in an array and I would like a way to assign this array as the keys for the arrays.[code]...
how to delete an element from an associative array? Splice doesn't work and I tried using the delete action but this doesn't produce the desired result....the element's properties become undefined.
View 6 RepliesHow do I push an entry into an associative array?
ActionScript Code:
var lijst:Object = new Object({fname:'John', lname:'Carpenter'});
lijst.push({mname:'Frank'});
[code]...
This doesn't work. The first name and last name work because they are created when the object was created, but the pushed middle name remains undefined.I understand that associative arrays are in fact objects. I tried turning it into a real array so the Push command would work cause it's part of the Array Class.
ActionScript Code:
var lijst:Array = new Array({fname:'John', lname:'Carpenter'});
lijst.push({mname:'Frank'});
[code]....
Though this works, it only works when using a '1'. When in fact I want to keep it inside the '0' entry.So how do I really add an entry into an assciative array? So that in above example instead of each having two elements one is added resulting in three elements per entry?
I need to create a associative array from a text file, but I don't know how I go about doing it.
The text file format is like this:
Code:
test_string_one="test1"
test_string_two="lol2"
lalala="lololo"
[Code].....