ActionScript 3.0 :: Using Arrays And Objects Together?
Feb 5, 2010
I want to put together an array of values that I can call by an ID I set myself, for example I want to be able to call "title" from the id "123", I tried this with Arrays but they don't seem to work the same way in AS3 as they do in PHP (the language I work with normally).
The following is what I am trying to achieve:
Code:
var Values:Object = new Object();
var Infos:Object = {
title:'something',
I'd like to know how to compare one array to another array with objects.
For example:
Array1 = [one, blue, car]; // there will always be only one entry in this array - no Array1[1], no Array1[2], etc. Array2 = [product.number, product.color, product.type, product.cost, product.qty];
The actual content in Array2 would be something like this:
Array2[0] = [three, green, boat, 100, 5]; Array2[1] = [two, blue, truck, 200, 3]; Array2[2] = [one, red, car, 50, 20]; ...and so on, up to about 60.
I'm trying to figure out to go through all of Array2 to determine if there's a match to Array1. Since none of the entries in Array2 are the same, there will always be one match.In this instance, I want to match array1 with product.number, product.color, and product.type. My example has them as the first 3 criteria, though that may not always be the case.
Something along the lines of this:
Code:
function findMatch () { for(i = 0; i < Array2.length; i++) { if(all 3 Array1 items equals items in Array2[i]) {
[code]...
Background: I've a combobox search that allows a user to select from drop-downs. After a user selects items from all 3 drop-downs, they click a submit button, and there's a check to see if the criteria in the drop-downs matches anything in the Array2 (which it should, if you can select it, then it's in the array).
After that, the matched information is used to populate a movieclip. There's actually about 20 pieces of information associated with each product. However, I only need to match 3 of them.I've searched and found comparisons for arrays. But I don't see how they'd apply to my issue as I'm using objects and there are more items in array2 than in array1. Of course, they may apply, and I'm just not understanding how. I could create a 3rd array and move only the items needed for a match from the array2 to it. Then I could do a straight comparison between array1 and array3.
Basically what I'm looking to do is hitTest bullets inside an array (spawn via addChild -> pushed into an array) with another array containing ships (spawn via addChild -> pushed into an array as well).At the moment I have:
function moveEnemyLarge():void{ var target2:EnemyLarge; for(var i2:int=0;i2<enemyShipArray.length;i2++){
[code]....
.. and a near identical function for the bullets (using variables: i, target).What is the easiest way for me to hitTest the objects within my bullet array with the objects in my ship array. Putting "target" in the PLACEHOLDER slot doesn't work, and from what I've seen some people will shove the one for() inside of the other.
I have a loop, it goes through and works fine. I can trace out my variables and all is hunky dory, for example "trace(title);" displays the variable title, as expected, there is also the variables "something" and "everything" and a unique ID: id. Now I want to put these variables into an array, so the values can be called via the ID. For example (I'm a PHP programmer normally) in PHP I'd do the following:
Code: $array[$id]["title"] = $title; And to display it I would do Code: echo $array[$id]["title"];
For each part of the loop I want to add the "title", "something" and "everything" into the array so I can call them by "id". I think I'm doing it wrong though, should I be using objects? If so, how?
What i have is 2 arrays, where one is "correct" - set by the computer. The player then makes his array and when its done i want to compare them to see that they match up. The array is in theory able to go infinite (its a memory game), and i thought this would work.
The arrays can only contain the numbers 1,2,3 or 4. which is added like this
I have a chart and am trying to display the "volume" in a line chart as the primary series & the "temp" as a column chart as the secondary series...(the "compound" will be shown in the datatip):
[{date=Tue Feb 08 19:00:00 EST 2011, volume=1200, 1={temp=-50, compound=helium}, 0={temp=-45, compound=oxygen}}]
I can get the "volume" series to display fine, but cannot get the "temp" series to display...how do I access them? Right now I have:
How can I use arrays and some how display my objects accordingly based on my code below?
What I have here are three buttons that when clicked a new clip is added to the stage with a predefined position which means that when button1 is clicked the MovieClip will be added at the very top and when button2 is clicked the MovieClip will be added at second and when button3 is clicked the clip will be added at the very bottom, but what I would like to do is to be able to dynamically position these objects based on how many clips exist, in other words if button3 is clicked first, I want the clip to be positioned at the very top and if later button1 is clicked the clip is positioned
Accordantly (at second place). I know this may be simple, in fact I could probably use a few IF statements but I know the code would look ugly (yes, even more) and I may have add more buttons later. What I would be awesome is to some-how use arrays or something that makes more sense to hold the MovieClips and then display them accordingly.
I've got four arrays which I want to use to create objects on the stage. The first one is what the Object Class is called. The second one is what I want the instance name to be. The third and fourth relate to the x and y co-ordinates respectively.
The "i" would relate to the parameters for the same object. So, if i = 0, then the Object Class Name would be: 'Background', the instance name would be 'bg', the x position would be '0', and the y position would '0'. What code would I need in the for loop to create this?
I am trying to make a to-do list application. I would like it to save each time I close. So I researched shared objects, and somehow cannot get it to work. I hold all my "items" in an array, then copy that array to a shared object. Here is the code used to copy the array: At the top. I put the array in a Global class, just ignore the GlobalVars.vars. junk. It's not really necessary, but it definitely works everywhere. ListItem is a class I made that works fine by itself.
Code: var listCookie:SharedObject; listCookie=SharedObject.getLocal("lkjasdf"); if(!listCookie.data.itemArray) { listCookie.data.itemArray=new Array(); } for(var i in listCookie.data.itemArray) [Code] .....
When this function is called, it equates the two arrays fine. I trace them both afterwards, and they have the same items in there. But when I close the .swf and reopen it, the saved array is full of undefined references. It has the same length, just nullifies everything it was supposed to have.
I have a string array with a list of words,e.g. var textArray:Array = ["a1", "b2", "c3", "e5"]Then I also have an array with a list of buttons that are visible on my stage,e.g. var objectArray:Array = [a1_btn, b2_btn, c3_btn, d4_btn, e5_btn]m wanting to use actionscript to make the buttons that are writen in the text array to be visible onscreen, and the buttons that arn't written in the text array to be invisible.
I want to arrange certain objects from a vector/array into a gird
Currently, I know how to do this during the creation of the objects.
Here's the grid function I've created:
function ArrangeInGrid(uiRow:uint, uiCol:uint, iOffsetX:int, iOffsetY:int):void { for(var i:uint = 0; i < uiRow; ++i) {
[Code].....
Now I want to be able to apply the same logic of arranging objects in an array/vector in to a grid, how do I do it?
Or suggest a more efficient way to do so (if you have).
Notes:
I want it to be flexible in how many rows and columns the grid can have. The vector I'm using already has the cards in it. I can't just push the cards into the vector cuz of the way I manually created my cards.
can you create arrays of Bitmap and Sprite Objects? or Custom Objects?
if not, how would you typically create multiple Objects of the same type? just a loop with
var enemy:Sprite = new Sprite(); for(var count:int=0; count<10; count++) { enemy = new Sprite();
[Code].....
That way could be fine for many things, but theres other things I want to do.. such as, create an array of wav sounds.... and my program could pick and choose them, so they wouldnt need to load them on demand.. midi files too.
I've got an array of coins, which are called within the array coin1, coin2, coin3, coin4 etc. I'm trying to reference them to say if the character hits coin 2, then coin2 will disappear. Here's my array (so far): ActionScript Code: var coinArray:Array = [coin1, coin2]; //an array which contains all of the coins
And here's the script I'm working on: ActionScript Code: function coinCollect(evt:Event){ if (collisionTest (character, coin/*[n]*/){ var i:int = /*the number from coin[n]*/ - 1 remove coinArray[i] }}
But I'm missing some major things, mainly how to reference which coin has been hit, and how to take the number from that coin and take 1 from it to reference it's correct position in the array? (the code in /* */ tags represents things I'm not sure on the code of).
how can i have an array of strings but also with mc identifiers in the same array and have it know the difference between object and string? RIght now i've got this array of strings that goes to a textfield, and if i change it to
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.
What i'm trying to do is creating an array of objects, little squares that are positioned in a grid with coordinates and when i click on the coordinates i need to select only the elements which fit with the value. So, what i'm trying to do now is to pass a value to each element of the array but it doesn't work:
i have two arrays of DesplayObjects and i want to add all the objects in the second array to the end of the first array, i knew that i just can just do a loop and puch em into the array, but i wondered if there was a simple function for doing this?
I 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.
I'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() );
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.
correct 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:
Internally Flash obviously keeps a list of the primitives drawn using Graphics so I wondered if you have many such primitives in a Sprite, can you re-position/remove/alter individual items rather than clear and re-draw everything? Or is this deeper into the bowels of Flash than you're allowed (or recommended) to go?
I'm using Zend AMF to send my remote objects to Flex. I've defined a Constant class and created getASClassName() method. Then I've created Action script class in flex.
Objects are send successfully, but they are deserialized to generic Objects in Flex instead of specific ones. EDIT: On network monitor in Flex I can see that AMF value is set to com.my.project.valueobjects.Constant. Although array from event.result contains Objects.
I have an array of temporary objects created in a for loop. The objects are of type class "Tile", a class I created. However, it appears that whenever I create a lot of tiles in the for loop, the program slows down indefinitely.
While the array is whiped at a later trigger point, I am thinking that perhaps these Tile objects are not being erased from memory. They are being created on the fly in a for loop, and the array is being reset to "array = []".
Are the objects still in memory or are they cleaned up when the array is set to []?