Solved

Iterating over properties of a class Actionscript

Posted on 2011-02-18
6
564 Views
Last Modified: 2012-06-27
Hi I wonder if someone could help.

Still being fairly new to programming as a whole,

I have an incoming string to a function which i wish to validate against a static constant from a class.

The class is ListStyleType and it has numerous constants of the like ListStyleType.Decimal, ListStyleType.Box etc

Now I could create an array and place all the constants in that, and then loop over the values, but I dont really want to have to type out 50 odd values as the string constants already exist

Therefore I was wondering if there was any way I could loop of the properties of the class itself

ie something like

private function checkStyle(incomingString){
   for each(var property:String in ListStyleType){
       if (incomingString== property){
          etc.....
}
}
}

Thanks in advance
0
Comment
Question by:BloodGrinder
6 Comments
 
LVL 20

Expert Comment

by:ChristoferDutz
Comment Utility
What exactly are you trying to do?

You want to create an input that takes a string and if this string matches a constant you want it to execute something (each constant different action)?
0
 
LVL 19

Assisted Solution

by:Gary Benade
Gary Benade earned 100 total points
Comment Utility
import flash.utils.describeType;

var yourObject:YourObjectType; // the object you want to iterate

var propxml:XML = describeType(yourObject);
for each( var prop:XML in propxml..accessor)
{
      trace( prop.@name, yourObject[ prop.@name]);  // property name, value
}
0
 
LVL 11

Assisted Solution

by:petiex
petiex earned 100 total points
Comment Utility
What hobbit said, except replace propxml..accessor with propxml..constant
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 20

Accepted Solution

by:
ChristoferDutz earned 300 total points
Comment Utility
My solution would be a little different:

At fist create the functions that react on the constants:
function func1(obj:Object, other:Object):void {
   ... do something in here ...
}

function func2(obj:Object, other:Object):void {
   ... do something in here ...
}

function func3(obj:Object, other:Object):void {
   ... do something in here ...
}

function func4(obj:Object, other:Object):void {
   ... do something in here ...
}

Open in new window

Then initialize an Object which maps your constants to functions (Note in ActionScript functions are handled like variables):
var constMap:Object = new Object();
constMap['constant1'] = func1;
constMap['constant2'] = func2;
constMap['constant3'] = func3;
constMap['constant4'] = func4;

Open in new window

And now inside your checkStyle, simply check if there is a callback for the given input and eventually call it:
private function checkStyle(incomingString){
    if(constMap[incommingString]) {
        constMap[incommingString](incommingString, someOtherParameter);
    }
}

Open in new window

It's just an example ... but it works without loops (I hate loops ;-) ) and is pretty clean from an architectural point of view.

Hope this was what you were looking for.
0
 
LVL 20

Expert Comment

by:ChristoferDutz
Comment Utility
Perhaps a little explanation at what's actually happening now:

If you call
checkStyle("hurz")

Open in new window

the lookup in line 2 of checkStyle will return null and nothing will happen.
If you however call
checkStyle("constant3")

Open in new window

Then the lookup will return a reference to the func3 function.
Now the function is incoked and the string itself and any other parameter is passed and the function is executed. You could also return a value if you needed to. I just did a void function, but any other type of function would work.
0
 

Author Closing Comment

by:BloodGrinder
Comment Utility
Both Solution worked
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

In my long career of working as an actionscript developer, I had spent sleepless night often working hard to solve some small problems which actually took a lot of my development time; later found out the solutions to be a line or two. Here are s…
The last time I worked with Flash and Socket connections was in AS1. A recent project required flash connecting to a Socket, and sending receiving information - we figured it would be easy enough - we all know about the socket policy documents and c…
The goal of the tutorial is to teach the user how to select which audio input to use. Once you have an audio input plugged into the laptop or computer, you will go into the audio input settings and choose which audio input you want to use.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now