Flex - Enumerate The Properties Of An Object That May Or May Not Be Dynamic
Aug 4, 2010
In order to send a POST request I need to enumerate all properties of a given object. This object may or may not be dynamic. I'm looking for the most elegant solution. This is what I've got so far:
I can't use a "for in " loop to enumerate public properties of a custom class. So I have a class "ClassA" , which has some public properties. if I try :
I heard that dynamic Object() properties, when looped through via a "for in" do not preserve their original order they were added to the Object.However if I use integers as object properties like this:
ActionScript Code: import flash.utils.Dictionary; var obj:Object = new Object();
I have a complex object with nested objects and arrays in it. I've made a clone function which makes a copy of it instead of a reference so I can keep the original one intact while i change the properties in the clone as such:
Code: static public function clone (original:Object):* { var ba:ByteArray = new ByteArray();
i have a question while reading Flex 4 Cookbook i came across the method to dynamically adding control to the container controls but nowhere i came across with how to provide them with the dynamic properties and events like they have created a button dynamically inside a group control but what good a button be if i cannot give it an event dynamically. in the same way i want to add a tree view inside a vbox but what good that be if cannot provide a data provider to it dynamically.actually i am creating an web application where i add the tree view to a vbox and i want to the data provider should also be dynamic depending upon the option i have selected in the combo box.
I have the following problem in AS3. I have a string like this one: "prop1:val1,prop2:val2,..."; I want to split and parse the string to obtain a dynamic object like this one: {prop1:"val1", prop2:"val2"}.
The simple way to solve it is to cycle through the string values and to do[code]...
Since I know the property names I expect, this works for me, but doesn't seem to be an elegant solution. I'm wondering if there is another way in as3 (similar to the reflection api in java).
I'm doing some Actionscript work right now and I'd like to know whether there's a way to initiate an empty object's value programatically like this:
var myObj:Object = new Object; myObj.add("aKey","aValue");
To add a property called aKey whose value is aValue.I need to create a "Dumb" (data-only) object to use as a parameter to send via POST. So I don't know offhand how long and/or how many attributes it's gonna have.
i'm attempting to cast an object's property as an actual property of another object. here's my object variable: var propObj:Object = {prop:"width", width:50}; now i want to assign the property of a sprite using that object's properties. var sp:Sprite = new Sprite(); sp.(propObj.prop as Sprite.property) = propObj.width; now, i'm not even going to try that because i know the compiler will explode all up in my face. but you should be able to see what i'm trying to do. why i'm trying to do it is because i'm reading in an XML file with an undetermined list of usable properties for specific objects. so instead of writing something like a huge switch statement to evaluate whether the XML file has a value for that specific property, i'm trying to assign properties dynamically based on what's available in the XML file. if what i'm trying to do is possible, what's the best way to do it?
I forgot to put it in the title so I'll just place it here; I am using AS 2.0. I know that there are other ways to accomplish the goal that am after, but I was wondering if anyone knows of a way to access the properties of an object's properties?
Here is the code that I thought of, even though it doesn't work
var a:Object = new Object(); a.bproperty = 0; //lowerlevel properties a.cproperty = 1; // lowerlevel properties
[Code].....
This really just boils down to how I am organizing the code(I have ideas on what do next, and i am 99% sure that I can get them to work), and if there is a way to dynamically access the properties of the objects properties, It will save me from creating yet another large block of code for my project. If you want to see the unfinished project, go to [URL]
I have this situation where i'm trying to save "chat logs" while people switch around views in my flex mobile application..so, my plan is i'm starting out with a main object that I plan to re-use as the main chat log object..I call it textObjso, when someone new wants to chat my plan is to make a new object with the persons username.so how if i were to get the username from something like data.username how could I translate that into the var name of the object I want to make? So in the end i end up with.[code]
Allright, i receive a string and want to convert it to object. here a test that i have made:
[code]....
this work pretty fine... but i am receiving the object property as follow: "{a:'test',b:'testAgain'}" How can i easily convert it to object properties?
I'm basically loading an XML file to assign instances of a movie clip a distinct value, which it uses to modify its height. So, I'm looping through the xml and instantiating my class Object each time (Rect) and then placing that Object into an array:
Code: function loadXML(loaded){ if(loaded){ var boxArray:Array; xmlNode = this.firstChild;
[code]....
the trace here always comes up undefined. "listPosition" in this bit is an Rect parameter, defined in the previous bit of code as "i", so I can keep track of the order of the stack.I've found one or two examples of putting objects into an array and getting them back out, but it doesn't seem to work with this, maybe because I'm using a class. I don't know.Could this be an area where I need to use the array access brackets, like around the movie clip the object is loaded into. I've tried everything I can think of -- referencing back to the movieclip, adding extra objectRef type parameters... nothing has worked yet.
When I load an swf dynamically using the Loader, is there any way that I can retrieve the symbols that are exported as as3 classes? I know I can instantiate the symbols when I know the classname using loaderInfo.applicationDomain.getDefinition(fullyQualifiedName) as Class But I can't find something like applicationDomain.getDefinitions() which would result an array of fully qualified classnames, like
Is there any way to enumerate the shared objects created by an application? I'd like to create a number of individual shared objects and then enumerate them when the application starts again so it knows what's been stored. I want to store them individually because there could be a large number of them and I only need to use a few in any one application session and I don't want to read them all as one big shared object
I know I could put their names in a "master" shared object, enumerate that list of names, and manage it that way, but being able to enumerate the shared objects directly seems much cleaner.
I have a general Flash question. I have got 2 .SWF wrappers (Playbook and Android,that work perfectly) that takes any .SWF file and wraps it up as an application. I'm hoping to make 1 application and have it run on both the Blackberry Playbook and any Android device.Technically everything is perfect but the problem I am having is with the layout.For example if an object is placed at x= 512 y=400 then it looks great on the Playbook but that looks horrible on an Android screen thats not 1024x800px. What I want to be able to do is something like (x=DeviceWidth/2), (y= DeviceHeight/2) so that it resizes and repositions itself automatically. An example of where I need to change the code is shown belowbt1.tween("_y", 400, 0.5, "easeOutBack");
I have a dynamic Actionscript class as follows: public dynamic class Foo {....} In my code I (may) add some properties to it: myFoo["myNewDynamicProp"] = "bar"; Elsewhere in my code, given an instance of class Foo, how can I determine if that dynamic property has been added already without throwing an expensive exception?
I want to create a generic component in flex. This component deals with different ArrayCollections dynamically (I want it in that way). So I thought to pass the arrayCollection and the type of that arrayCollection as arguments to the component.
Like, var list:ArrayCollection<ClassA>; init_Comp(list, "ClassA");
If it is possible, I can read it like this, var newDynamicInstatnce: typeOf("ClassA") = list.getItemAt(0) as typeOf("ClassA");
Finally I have a Dynamic Instance type of that I pass. Is this possible in Flex or Is there a better way?
I'm doing some work with JSON in as3 using as3corelib (very useful) and was wondering if it is possible to get an object if all you have is one of its properties, also an object. Here's an example of some JSON:
"parentObject": { "propertyObject": { etc. } } so what i'm asking is, if I have propertyObject, can I access parentObject somehow?
Back in the day (AS2), I used to create what I called an"ivar" property that collected the index of a series of buttonsthat were clickable (see attached code). Imagine 10 buttons on thestage with names (selectButton0, selectButton1, ...selectButton9).The code under the //----------BUTTONS header would make a propertyof the button that was clicked, call it "ivar" and then send it upto a function that would use it as an index to then load theappropriate content with MovieClipLoader (remember that Class?).I have tried something similar in AS3 without any luck sincethe whole button thing is now steered by events. Does anybody knowan elegant solution that would achieve a similar result. That is,click a button called "selectButton0" and have returned the zero asan index variable that could be used further?
ActionScript Code: public static var places:Object = new Object(); places["MyHouse"] = ["My House", new Point(PointX,PointY)] places["YourHouse"] = ["Your House", new Point(PointX,PointY)]