Actionscript 3 :: Class Has 50 Private Members Of The Same Type?
Jan 18, 2012
I have a class which deals with a lot of visuals, which essentially are movieclips. So I have around 50 privately declared movieclips in the class. Would it be a good idea to put them in a dictionary and retrieve them by their name (as key) , put them in an array or just leave them as they are?
My issue is the visual look of my class right now with that many private members, looks like a mess visually.
I've worked with AMFPHP for a while, but with Adobe supporting ZendAMF, I was wondering if I should migrate.
One of the major disadvantages for AMFPHP is that class mappings need to be public, so not only does that mean public members on the PHP side, but also on the Flex side. I was wondering if it is the same case for ZendAMF.
I'm developing a framework for my coworkers and I'm having trouble documenting it.ASDocs as omitting the private members (even without @private directive).
1.Is there any way to access the private data members of a class in action script using asmock framework? I tried using syntax likeContentPlayermockContentPlayer;Where in getContentPlayer is a private member and mockContentPlayer is alias am creating, but its not working well, I doubt whether I can do like this?
Okay so you've got your private vars in your AS2 Class, you think they're all safe right? Wrong.
Doing a trace(MyClass.myvar); will spit out an error that the var is private and you can't touch it.
But a trace(MyClass["myvar"]); will work perfectly fine. You can use it normal, without any setters getters outside the class.
Is there a way to protect against this? I think this is a huge security flaw. I know it's simple OOP, but a private var in an object should have rules.
I have two objects, both brown squares. I want them to be members of the same class but one square to have a number "1" in the center and the other to have a number "2" in the center. Any ideas on how I might accomplish this? Any clues on how to instantiate a vector drawing (drawn in illustrator) from ActionScript 3 as opposed to dragging it on stage from the library in flash?
I have a class, ClassA which is a MovieClip. Inside of that I have about 20 other MovieClips that are associated with ClassB.In my main timeline I have something like this,instantiating ClassA and then calling a setup function in it.
Code: var obA:ClassA = ClassA(attachMovie("ClassA", "classA", getNextHighestDepth())); obA.setup();
So i have a movieclip with a textfield in it. Also there is a class for this Movieclip. This all is exported to a swc that is linked into other projects for reuse purposes. However I cant access the textfield from classes in other projects. I get the 1009 error. Even when accessing ti from the Added to stage event.
i have created a Vehicle.as file and a Car.as file which are in the same project. The problem i am having is trying to use the properties in my Car.as from my Vehicle.as file.Vehicle.as
I try to serialize objects with their private attributes, in Flex.
The introspection API does not seem to allow it:
"The describeType() method returns only public members. The method does not return private members of the caller's superclass or any other class where the caller is not an instance."
Is there another way for an instance to know the name of its private members?
I have some code from a CS3 app composed of the .FLA file with an .AS file for the class that had definitions for two private classes in it. Yesterday I brought the files into CS4 and noticed that they did not compile. Gives an 1120, access of undefined property and names a constant. I have reduced this problem down to bare bones and it still occurs, so it is a bug in CS4.
there are classes definitions where all their methods are private my question is why are they private, because i've tried a code wherein i changed all the private access modifier to public and nothing changed!
what if you make an instance of that class with all its method private, how are you be able to access that on another class. coz i know private methods are only accessible to the class where they are declared! will the instance of that class be able to access the superclass's private methods!
on private variables, it's still not clear to me as to why make a private variable and then use a getter and setter, when you can simply make it public! are these variables called static?cause on the way i understand it private functions and private variables are static?
I have a class that creates an array from a config xml file. I set a private variable in that class and use a getter in other classes to access the array. The routine that uses the array does the following: - Call the getter and assign the returned value to a local (private) variable tmpArray. the getter is a simple return() using a value that is established in the constructor. - Uses a for loop to itterate over the contents - Uses array.shift() to pop the item in tmpArray
The next time I run the routine, the contents of the array is empty. I'm using the same getter. I implemented the getter when I tried to manage both arrays in the same class figuring that as long as the original array was private (i also tried static), that the value would not change. I have since worked around the problem by moving the routine that fills up the original value from the constructor to the getter. So, consider the following code:
import flash.events.Event; btn.addEventListener("click", btnHandler); var myArray = new Array(); var myTmpArray = new Array() myArray = ["one", "two", "three"]; myTmpArray = myArray; function btnHandler(evt:Event) { [Code] .....
If I create a variable myVar and set it to 1 then set myOtherVar = myVar, the both equal the same value. If I change the value of myOtherVar, myVar is not affected. But using the shift() method changes both the original and the copied array.
Currently I have two classes which are "bullet" and "enemy".There are two instances of the enemy class.Code from an ENTER_FRAME event in the Bullet Class:
The Enemy Class has a private variable called "hits".What do I have to do in order to reduce the hits of the instance of the enemy that was hit by the bullet?
These two functions are taken out of my as class file, even though the setInterval is never cleared it only calls generateParticles 1 time. Someone please help me figure this out. I have been messing around with it over an hour but still can find why its only called once. emit is a private var Number declared outside the function in the class.
I have a Color class where all the data is stored in a single uint named "_value". However, the constructor for Color looks like this: public function Color(r:uint = 0, g:uint = 0, b:uint = 0):void { _value = (makeChar(r) << 16 | makeChar(g) << 8 | makeChar(b)); }
If I want to create a clone() method, I have to first convert the "_value" variable to an RGB object, then, the constructor automatically converts the object back into a hexadecimal value. Blatent waste of efficiency! However, I would rather have the constructor be user friendly and allow them to type in each color value instead of one hex value (they can use the Color.fromHex() if they really want to, but it does the same as the clone() method and converts back and forth).
Is there any way to instantiate a class without going through the one single constructor function? Any way to set up a private constructor in addition to the public one? Most Visual Studio languages allowed you to have multiple constructors, and the chosen constructor is determined by the passed in arguments. This was really convenient, but sadly, AS3 only allows one constructor, right?
I'm setting up functions in a document class file, then from there I am going to call that function from a movieclip in flash. For some reason, maybe I have things set up wrong, but it is throwing me errors such as below: Line 37 1013: The private attribute may be used only on class property definitions. What am I doing wrong here and is there something I am not understanding? Here is my .as code. modal.as > package