Actionscript :: Constructor For Value Object Classes?
May 9, 2011
Is it OK to use the constructor to set properties for a value object class or must I use dot notation and set each one, one-by-one? I recently read an article that was saying I should do it one-by-one as value objects should only contain properties and went on to say using the constructor is not OK (best-practice wise).
Code:
("not OK")
var employee=new[code].............
I have three classes (shown below, after the problem description).The first class (InteractiveStrategy) is the main class definition. In there I declare and instantiate two variables, download and upload, both of DataTxRx class.
On instantiation the folowing error pops up>> 1203: No default constructor found in base class strategy:DataTxRx public function Question(){ The second class, DataTxRx does two things only, either to download data or to upload data. As shown in its constructor, if the required parameter 'direction' is equal to DOWNLOAD, it calls the DownloadData() function. Similary, it calls the UploadData() if the required parameter is equal to UPLOAD.
The third class, Question extends the DataTxRx class, but itself has no constructor. However it has other methods(not shown) for adding, modifying and deleting questions anomg others.
I have a rather general question regarding OOP. How do constructor functions execute with multiple class extensions? I'm making an orbital physics simulation, and every spatial body is of the class SpaceObject, which extends Sprite. Then, I have all earth-type planets be of the class Earth, which extends SpaceObject. There are certain parameters that I'd like to set for every single SpaceObject (like position and size) in the constructor function, and certain parameters (like density and mass) that I'd like to set in the constructor of class Earth.But from the main timeline, when I create an instance of class Earth, I can only enter the parameters of the Earth constructor, ie
Code: var planet1:Earth = new Earth(density, mass) Or I can create an instance of SpaceObject:
I'm used to building applications using pure AS3. I always pass dependencies into the constructor of classes I make, but this method seems to not work out well for Flex MXML views. It seems like I should define setters on the MXML class, which map to attributes in the tag/class instantiation. But using this method I cannot specify which properties are required and in what order I expect them etc. What is the preferred method to give a Flex view it's dependencies?
Can I define a custom class to be an AsBroadcaster in the classes constructor?
Code:
class myClass{ function myClass(){ AsBroadcaster.initialize(this); } }
And if so will that give me the ability to addListeners to an instance of that class?
The reason I want this approach is because I want to broadcast events from inside one of the custom classes methods and I want a textField on the stage to be listening for that broadcast message.
I am new to AS3 but not to AS2. I have written a simple class and when I import it, I don't see the object that should be created upon calling the constructor. Can you guys tell me where am I going wrong. And I am very puzzled about 'document class'. Yes, I have google numerous threads on "document class" but still very shaky on this matter. Here is my simple class which should place a button object on the stage when I create a new object of this class. Once I have created the BTN class, I have made sure that I have button component in my library, I then instantiate the object by creating a new CS3 file and importing my class: import com.learning.as3.*; var b:BTN = new BTN();
When I test the movie, I get the following errors: 1172: Definition com.learning.as3 could not be found. 1046: Type was not found or was not a compile-time constant: BTN. 1180: Call to a possibly undefined method BTN.
I have the Class and the parameters of its contructor as an object. What I need to do is a function that returns an instance of this class, passing this parameters to the constructor.
This is the code: Some random and unmodifiable class:
public Foo { public function Foo(a:int, b:String) { // constructor } }
And some function (in some another class):
function bar(params:Object):* { var baz:Foo = new Foo(params.a, params.b); return baz; }
What I need to do is make this function generic, without pass params as parameter to Foo constructor because I can't modify it. Something like:
function bar2(clazz:Class, params:Object):* { var baz:* = new clazz(/*some magic way to transform params in comma separated parameters*/); return baz; }
I am working on a side-scrolling platformer game. Because of this, I have a class that acts as a floor. I also have a class representing enemies. I am having problems with passing a parameter to a custom class' constructor. The class (SkullDemon.as) extends MovieClip. I am trying to pass an instance (called "floorL1") of a customer class called "FloorLevel1." "FloorLevel1" also extends MovieClip (I do not have a written .as file for "FloorLevel1"; I just exported the floor MovieClip to that class).
I am trying to pass an instance of "FloorLevel1" so that the "SkullDemon" object can land on the floor just like in a platformer. My main class is called "TME2_Main." This is the class from which I try to pass the "floorL1" instance to the "SkullDemon" class. This is how I try to create a Skull Demon instance and pass "floorL1" to its constructor:
[Code]...
What am I doing wrong here? I have spent a while looking for solutions (including moving code outside of TME2_Main's constructor),
I have a class in my .fla's library called StatBar_object. StatBar_object is an inherited class that extends from a custom class StatBar, while StatBar extends from MovieClip.
However, StatBar's constructor has a parameter (the constructor reads "public function StatBar(target:int)"). Thus, I continually get an output of:
"ArgumentError: Error #1063: Argument count mismatch on StatBar_object(). Expected 0, got 1. at actionscript.stat::StatBox_object() at actionscript.modes::battle_mode()"
Is there any way to get StatBar_object's constructor to include StatBar's parameter?
I want to serialize ThugtrisShapes' children (heritage/polymorphism) but his children like Right_LShape take constructor parameters,i have to assign it a default value (in my case null because they receive an Array type), but i get this error even when implementing IExternalizable.
Take Note: IForm extends IExternalizable.
here is a link i found about it but it still does not work...[URL]
Code: public class ThugtrisShapes extends Sprite implements IForm { var squares_:Array; var numsquares_:int=MAX_SQUARES;
[Code]....
I know that not all class' can be cloned , but cloning is an important aspect of OO programming.... There should be a solution for my problem,besides taking the parameter out of the constructor and add a setter.
I have the component Hadlab Newsflash on my stage.I have a button that, on rollover, changes the color of the component.When the button is clicked, the component fades out (tweenning) and the movie goes on. The problem is that the constructor keeps telling the component to be #FF0000(red) and the fade out tweenning doesnt work anymore because the mouse is on the button. Here is the code:
Code: // cria a funcao "onRollOver" para o btnEnter btnEnter.onRollOver = function() {
I've read through the Sticky in ActionScript 3.0 forum and looked through other threads in the topic but maybe I'm not using the right search terms. My problem is creating a new object in the constructor method, I've created a package "com.weenz.shutters" and created many class files within that package. The compiler is giving me the following 2 errors for the "Window.as" file[code]...
I have a class which works with data and I want to do something after its constructor function is finished and the object has been created. If a class is a MovieClip, I can do this:
I have extended an mxml component with an actionscript class. I'm trying to access a component in the mxml file using the id (in order to add an event listener) but I cant seem to do it.
I get:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
I know the topic of "duplicating" movieclips is a hot issue with the new virtual machine. Luckily, I understand the implications. I only am [currently] interested in duplicating a Bitmap. See, I load an image from an URL using 'flash.display.Loader.load', which is a non-blocking operation in Flash Player.However,I may use multiple copies of the loaded image (which is reported to be a Bitmap, naturally) in the display list at the same time.Hence, I naturally do not want to load the image from an URL every time, because I don't want to wait for a non-blocking call to complete. Nor do I need to - I mean one copy is already loaded, so it should be possible to just "duplicate" it, right?
My idea is to do use the bitmapData property of a Bitmap and pass it to the constructor of a new Bitmap object. I have not tried the following in action, but I want to hear whether any of you did and if the following would not work, what would:
Code:
var original_bitmap: Bitmap; var copy_of_original_bitmap: Bitmap = new Bitmap(original_bitmap.bitmapData);
LiveDocs mention that the BitmapData being passed to a Bitmap constructor is "being referenced", which to me might suggest it cannot be used twice? There is also the BitmapData::clone() method, which I am not sure is applicable here or not.I know this is a lot of talk instead of just trying this out, but I test so much Flash Player code daily just to see "what works" (which should be documented instead by Adobe),
I have a project that i'm working on, and in the project it's important that i have an object that i can create with actionscript that already has two arrays inside of it. To do this, i made the movieclip, i checked export for actionscript in the library, and in the custom class that corresponds to that object i made the arrays with the following code:
package { import flash.display.*; public class cont extends MovieClip {
classes. GiftMain and GiftItem. i attached GiftItem objects into GiftMain. Actually there are 2 more movieclips between them. i declare a variable in GiftItem as giftMain to reference it to the GiftMain. i have a function in GiftItem which is as below;
[Code]...
trace outputs the right object in this function in GiftItem class but at another place in the same class, it outputs undefined when it is traced even though it is global variable. I just want to reach GiftMain from GiftItem without using _parent or _root. How can i do that?
I have 2 different classes that contains different object. And I control from another custom classes on when to load which class. The custom class will load a class when first run, and switch to another one when selected. My problem is, although I called the next class, but the object does not appear. The class that controls which to load
I want to make a flash movie with cars of different kind. Every car looks different and have their own specifications like weight, horse powers, top speed. So.. I want to create a class Car that can hold the variables weight, horsePowers, topSpeed and should be linked with a specific MovieClip (the car).
The problem is I cannot link all my MovieClips, holding the cars, to the same class Car.Should I create a container to associate with the class and then place different car MovieClips in them depending on which car object I'm creating? (so the MovieClip itself is sort of a variable)
I would like to check if object has a DisplayObject as one of it's ancestors and perform some operations on it if it has. Any quick and easy way to do this?
I am trying to get my Actionscript program to turn in a key-value (more specifically: a key, value1, value2) object into a server. I am doing the html request properly, but I'm not sure what kind of object to send;
I'm new to the object oriented stuff and I'm trying to learn how it works. Here's what I've started on - it's led to a few dilemmas. I have one flash file and two .as each with one class. In the timeline of the fla file, it reads: ActionScript Code: var FileObject:ScriptFile = new ScriptFile(); function onEnterFrame(){ FileObject.CallInput(); }
Call input is a function in "ScriptFile.as" that calls another function in "Input.as"; ActionScript Code: class Input{ public function Input(){ } public function keyListener(target:Number):Number{ [Code] .....
In output, when I press Left, it will say -5 over and over again, and I'm trying to add to xpos value but that isn't happening.
I've recently come to a roadblock in my code for a non-visual class I created; a sound class if you want to know. At first I coded with it extending Sprite (I can't remember why I started it out that way, but that's the way it was). When I came back to this code, I thought that extending sprite doesn't make any sense if it's an audio class and non-visual, where is no real reason to add something to the stage if you can't see it. So I removed "extends Sprite" from the class and errors started popping up around "dispatchEvent" coded areas. I then tried putting back the extention with "extends Object", hoping that would solve the problem; got the same thing. I've searched with google on why I can't use dispatchEvent on objects or classes not extending anything, but it only came up with how to use dispatchEvent with the usual MovieClip or Sprite tutorial.
Just wonder if I can reference entry point object from any place in the app? Is it maybe assigned to some global object, like stage is for example? Currently I use static methods and variables, but this breaks encapsulation.
I am having problems storing an array of objects, all of which are the same custom class in an LSO and then reloading that array from the LSO without losing the class type of the objects in the list.
I know how to store a single object of a custom class and load it withe the correct class type using the registerClassAlias() function, but I cannot seem to apply this to arrays of objects.
I am trying to save an array called messageList. Each element is a custom class GameMessage with a property called gameLevel. After I load the LSO I am trying to do something like
trace("0th message is from level " + GameMessage(messageList[0]).gameLevel);
And I am getting an exception of like this:
TypeError: Error #1034: Type Coercion failed: cannot convert Object@90fdfa1 to GameMessage.
I have registered the GameMessage class using
registerClassAlias("GameMessage", GameMessage);
and everything works if rather than a list of messages I try and save/load a single message.
TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.common::stageConfig() at cloudsMain() CloudsMain.as which is attached to the .fla
[code]....
Basically I'm trying to create a class that I can call and centralise any mc on stage by eg.stageConfig.centralisedDO(my_mc), However I encounter the above error.