Flash :: Get Number Of Properties In A Generic Actionscript Object?
Jan 15, 2011How can I get the number of properties in a generic Actionscript Object? (Like Array length)
View 1 RepliesHow can I get the number of properties in a generic Actionscript Object? (Like Array length)
View 1 Repliesi'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?
View 1 RepliesI don't understand what is structurally different between a Value Object and a Class in ActionScript3. Can any Class be a VO if you decide to call it one?
View 1 RepliesIs there a way out there to essentially loop through a generic object to find out what parameters/properties are being used and/or what there names are?
ActionScript Code:
var obj:Object = new Object();
obj.foo = "hello";
obj.bar = "world";
//... and on for however many params you need
[Code] .....
I might be trying to do something that is essentially not possible, but I'm just thinking it would be very nice sometimes to access different parts of an object without having to directly know what the param name is...
I have this bit of code, and it's not working as I expected. btnContainer is a VBox that contains a ton of buttons (toggle=true); and I want to reset them to un-toggled at a certain point.
for (var btn:Object in btnContainer.getChildren()){
if (btn.isPrototypeOf(mx.controls.Button)){
btn.selected = false;
}
}
With the above code, "btn" shows up as just the index during each iteration of the loop (0,1,2,3,...), and the conditional never evaluates to true.I also tried this:
for (var btn:Button in btnContainer.getChildren()){
btn.selected = false;
}
This works fine, except that there is also a label inside btnContainer; so it throws an error when trying to cast the label as a button.
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?
Right now I'm working on an advanced hitTesting engine, and What I'm trying to do here is create an engine that will detect collision with one object instead of two. That basically means that if any other objects touch this movie clip, the hitTest will return True. Right now the .fla containing the engine has nothing but a circle that can be moved using arrow keys and 8 squares that disappear when touched by the circle. Obviously, I could do something like:
if (circle.hitTest(square1)) {
do so and so
} else if (circle.hitTest(square2)) {
do this and that
} etc...
But that would be too long, since the engine has to be able to contain 100 squares without too much change in the code.
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]
Does there exist a Flex view component that you could just pass it a custom object with all public fields/properties that it could reflect over and produce a basic UI view using flex components. Is it possible to use something like the Spark DataGrid with one item laid out vertically. It would only have to support:
[Code].....
I have a MainClass and a GUIClass.The MainClass lets the GUIClass handle everything about the GUI.How do I call different Object properties from the MainClass to the GUIClass.
package {
import gui;
public class main {
[code]...
I'm fairly new to AS3. In AS2 I often used objects to store properties so I can creatre them dynamically and refer to them later.Sometime I use an array as a property. I am wondering if my method of doing this is the best way, or if AS3 has other methods that might be better suited.In this case I have an object that stores properties like ID no. and I also want to store an array of sub properties which are in array.[code]
View 3 Replieshow do you get the length of, or number of properties in, an associative array/dynamic object?
View 3 RepliesAllright, 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've been having trouble with a simple generic object. I took this example from the file : var myPoint:Object = {x:50, y:20}; When I paste it into a new flash file and trace it, I get x = 50 and y = 20 . As expected. When I paste it into a file I have been working on, in the root, on it's own layer, I get "undefined" for the x & y properties. There are no other variables in my file called "myPoint".
View 6 Replieshow do i find out the number of properties in any element of the ArrayCollection? The structure of the ArrayCollection wud be something like:
var arrColl:ArrayCollection = new ArrayCollection([{column1Data:"someData",column2Data:"someData"},{column1Data:"someData",column2Data:"someData",column3Data:"someData"},
[code]........
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.
ok, when I trace a certain variable: trace(numButtons) Display: 12 (which is getting it's value from a node in an xml document) owever, when I do: trace(typeof numButtons) it gives me an Object.How come I'm tracing a number but when I "typeof" it, I get an Object. The problem is, I can't use this variable as a subsitute for my number and it's messing up my functions.
View 2 RepliesI created the following AS for a particular frame
Code:
cnx.addEventListener(CNXConnection.DIGITAL, onDigital_10);
function onDigital_10(e:DigitalEvent)
{
[code]....
While debugging everything works properly if I'm testing that frame.But, pushing a button in another frame, I get the following error:
TypeError: Error #1009: Cannot access a property or method of a null object reference at "frame number:raw number"
I'm quite sure that the problem is that the variable e.Join changes its corresponding e.Value pushing a particular button in another frame (as must be). Any ideas how to link that information to the frame that create the error?
How would I write a procedure that would build this array such that I could choose as many parameter names such as KBP? I wanted?
public var expenses:ArrayCollection = new ArrayCollection([
{Impact:"A", KBP1:1, KBP2:0, KBP3:0, KBP4:0 },
{Impact:"B", KBP1:0, KBP2:0, KBP3:0, KBP4:0 },
{Impact:"C", KBP1:0, KBP2:2, KBP3:3, KBP4:0 },
[Code]....
Is it possible to have flash access a generic twain scanner from my web-application, save the file and upload it into my application?
I have done some searching through google but wasn't able to find to much detail in this. Is there any pre-made solutions, Paid / Free (ideally).
If Flash isn't the best route to go, would Java Applet be better, if so, is their a solution already built?
I have to produce a generic API that provides game tracking functions (track what was clicked, track if a certain event occurred, etc). This generic API needs to wire into one of two (or more) bespoke tracking solutions provided by third parties (e.g. itracku.com and itrackutoo.com) in the background.The bespoke tracking solutions sport similar functions (trackClick, trackEvent), but vary dramatically in the number of arguments they require (e.g. one requires 1 argument to be passed, the other 6).In order for the generic API to easily switch between hitting either bespoke solution, am I right in assuming that ALL arguments need to be scoped out beforehand in order to facilitate switching tracking solutions? The desire is to NOT have to recomplie .swfs in order to switch tracking solution (i.e. it's switched via an XML config). I was thinking of achieving this by having my generic API functions accept a single object as an argument, e.g.[code]
View 1 Replieshow to trace all properties of an Object regardless of data type?
View 4 RepliesI'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?
View 14 RepliesI would wish to create a class extending Object class to create it's own properties in a FOR loop to save some space. However, it seems impossible...
The following won't work:
[Code]....
Is there a way around it so an object can create it's own properties using functions?
Does anyone know how I could remove properties that have been set on a static object in AS3? it would be something like -
foreach(property in GlobalStaticVar.properties) {
GlobalStaticVar.removeProperty(property);
}
can i modify the property inside its class, and then get it from another class with the modification done on it?
View 1 RepliesI have an object that I'm creating as such:
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)]
[Code].....
Is there something that will let me trace all of an object's properties? (and wow typing the message before coming up with a title makes a difference)
View 1 RepliesI am having a hard time understanding for...in loops. I have seen David use it in his signature, and I understand what the loops is doing, but only from the context of the rest of the signature. If somebody could explain how the for..in loop works, I'd be greatful. Here's what I know:
PHP Code:
for (proprtyThing in objectThing) {
trace (proprtyThing);
}
My understanding of this loop tells me that if I run it, I'll get a list of all the properties of the object named objectThing....but this makes no sense to me!!