Ask a Question related to Macromedia Flex General Discussion, Design and Development.
-
FredFlex #1
How to search into an array of objects?
Hi,
Is there a way to find an item into a array of object without parse each
object?
Ex:
var : myArray : Array = new Array(
{label : "cup", ref : "345TR3"},
{label : "glass", ref : "987TR3"},
{label : "spool", ref : "123XX3"},
...)
How to search for ref "987TR3" and get array index (=1) and label (=glass or
= myArray[1].label) ?
Thank in advance,
FredFlex
FredFlex Guest
-
Array out of Objects
Back in the old days of Flash, I was able to walk through all of the objects on the stage, and filter them by the type of object. I could then... -
How to represent an array of objects?
If I have the following class declaration and then need to be able to provide a way to access a collection of PartyRecords, how would I accomplish... -
Custom objects in an array
I have tried to store instances of a custom class in an array. When I retrieve the object actionScript seems to have forgotten what type of object... -
array of objects
I currently have a number of buttons, which have image icons and when clicked, will display th associated image in a large viewing fram I would... -
What is this objects name in the array?!
I have this code sniplet.. function dragalong() { this.startDrag(); } function dropper() { this.stopDrag(); } -
ntsiii #2
Re: How to search into an array of objects?
The ordinary old array does not.
You could use what is called an "associative array", which is simply an
mx:Object. This use is very similar to a "hashmap" in other languages.
To add an element:
oAssocArray.anyString = AnyObjectOrStringOr anything;
To retrieve an element:
var myValue:WhateverType = oAssocArray.anyString;
You can also look at the ArrayCollection class. I think the "contains" method
provides random access.
Tracy
ntsiii Guest
-
poonamsheth #3
Re: How to search into an array of objects?
Associative arrays, which are sometimes called hashes or maps, use keys instead
of a numeric index to organize stored values. Each key in an associative array
is a unique string that is used to access a stored value.
There are two ways to create associative arrays in ActionScript 3.0. The first
way is to use the Object constructor, which has the key advantage of allowing
you to initialize your array with an object literal. An instance of the Object
class, also called a generic object, is functionally identical to an
associative array. Each property name of the generic object serves as the key
that provides access to a stored value.
The following example creates an associative array named monitorInfo, using an
object literal to initialize the array with two key and value pairs:
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace (monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
If you do not need to initialize the array at declaration time, you can use
the Object constructor to create the array, as follows:
var monitorInfo:Object = new Object();
After the array is created using either an object literal or the Object class
constructor, you can add new values to the array using either the bracket
operator ([]) or the dot operator (.). The following example adds two new
values to monitorArray:
monitorInfo["aspect ratio"] = "16:10"; // bad form, do not use spaces
monitorInfo.colors = "16.7 million";
trace (monitorInfo["aspect ratio"], monitorInfo.colors);
// output: 16:10 16.7 million
Note that the key named aspect ratio contains a space character. This is
possible with the bracket operator, but generates an error if attempted with
the dot operator. Using spaces in your key names is not recommended.
The second way to create an associative array is to use the Array constructor
and then use either the bracket operator ([]) or the dot operator (.) to add
key and value pairs to the array. If you declare your associative array to be
of type Array, you cannot use an object literal to initialize the array. The
following example creates an associative array named monitorInfo using the
Array constructor and adds a key called type and a key called resolution, along
with their values:
var monitorInfo:Array = new Array();
monitorInfo["type"] = "Flat Panel";
monitorInfo["resolution"] = "1600 x 1200";
trace (monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
There is no advantage in using the Array constructor to create an associative
array. You cannot use the Array.length property or any of the methods of the
Array class with associative arrays, even if you use the Array constructor or
the Array data type. The use of the Array constructor is best left for the
creation of indexed arrays.
poonamsheth Guest



Reply With Quote

