Actionscript 3 :: Pass All Parameters (one By One) In An Object To A Constructor?
Dec 1, 2010
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've got a function wich can accept a varible number of parameter with a rest operator. I want create an object passing the argument collected with the rest operator directly to a constructor without create an object and call an initializing function and without passing the entire array but the parameters ah I do with apply() function.
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 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.
What I'm trying to do is create a simple message class that I can pass a set of textfield parameters of my choosing rather than specifying each textfield parameter in the constructor.Is it possible to pass a textfield instance an object of parameters instead of setting each one individually?
Code: public class Example { private var message:String; private var messageTextField:TextField;
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'm working on a very simple dependency injector, reflecting on a types constructor parameters.But when ever I use the describeType on my custom classes, all I get in the constructor packet of the returned XML is something like this:
is it possible to obtain the instance name of a class from the class without having to manually pass the instance name as a string parameter to the class constructor?
//Create New SizeClass var big:SizeClass = new SizeClass(); //-------------
Let us assume I have classes "Main", "Sub1" and "Sub2". I also have interface "Inter".[code] Basically, I want the constructor function of any class implementing "Inter" to take the same parameters, and thus avoid initialization errors. (So as that the code above gives a compiler error) With any other function,[code]But As the constructor name differs from function to function, I cannot do this.
I just posted a message asking how to call a method from the constructor which has the parameters e: Event. I mistakenly ticked that post as answered when in reality it isnt. I was told I could add = null in the parameter of the function to make it work, like this:
So I usually use an object in the constructor to receive the parameters like new Class({param1:00,param2:0099,etc).To be able to access those parameters from other functions inside the class I create an object, and copy it:
Code: public class MyClass { var params = {}; public function MyClass(p){
How do I call class constructor functions with indefinite number of arguments?
For example:(this piece of code doesnt serve any purpose, just to demonstrate an example)I wish to create a new class Foo with the parameters bar1, bar2, bar3, bar4.
There is a library component represented by Class A. But constructor of this class requires some parameters. When the component needs to be added dynamically, it's fine because of code :
var abc:A = new A(param1,param2)
But what if my movieclip is already present on the stage. I notice it gives out error, that the parameters are null.
Is their any way to insert constructor parameters for movieclips already on stage.
I'm sure that I'm doing something daft here - I just need to remove a child that's created in the constructor through an event listener.My code is below but does not work. Can someone point me in the right direction please?
public class Main extends Sprite public function Main() super(); var rectangleIndex:uint = this.getChildIndex(playerBackground)
I´d like to know how could use the Timer class extended.I´m trying to pass a parameter to the constructor function, so I can use it inside the listener.
Here´s example:
[CODE] package { import flash.utils.Timer import flash.display.DisplayObject public class ChangeColorTimer extends Timer { public static const CHANGE_COLOR:String = "changeColor"; public var obj:DisplayObject public function ChangeColorTimer(delay:Number, repeatCount:int, obj:DisplayObject ) { super(delay, repeatCount) this.obj = obj } } } [/CODE]
That was the ChangeColorTimer that extends Timer.Now, I´d want to know how would I use ChangeColorTimer.I thought it was the same as using Timer.I´ve tried this:
[CODE] public function changeColor(mc:MovieClip):void { var colorTransform:ColorTransform = new ColorTransform() colorTransform.color = 0xEE0000 mc.transform.colorTransform = colorTransform var changeColorTimer:ChangeColorTimer = new ChangeColorTimer(400, 1, mc) changeColorTimer.addEventListener(ChangeColorTimer.CHANGE_COLOR, setNormalColorListener) changeColorTimer.start() } private function setNormalColorListener(e:Event):void{ trace("called") } [/CODE]
I called changeColor, but, I don´t get "called" in the output from the setNormalColorListener listener.
I'm passing a DisplayObject to a command that will instantiate it. Something like this:
// ViewClass is passed into this method typed as a Class var view : DisplayObject = new ViewClass() as DisplayObject;
Is there a way to pass arguments to ViewClass() without knowing it's type? I'm assuming the list of parameters passed to any object's constructor is an array, but I'm not certain how to proceed.
I know I can do something like this:
// Assume arguments, an Array of arguments, has also been passed in var view : DisplayObject = new ViewClass(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]) as DisplayObject;
But clearly I'd like something more dynamic, like to be able to just pass the arguments Array directly. I suppose all of this, however, goes against any type safe checking
I have a bunch of movieclips( clip A and B for this example) in my library that I want to use the same base class (MyClass.as in my example). I assigned the same base class in each clips property window and then gave each clip a unique class name which doesn't exist so flash says it will create the class automatically.
Now if I create a bunch of A's and B's on the stage via actionscript, how would I send variables to the constructor in MyClass.as without having to creating A.as and B.as to pass the variables along to the base class? if I do: Var newA:MovieClip = new A (argument 1, argument2, etc) It says it expects 0 args since the A & B classes were created automatically by flash.
when to use this in a classes?is there any specific rule?is it wrong to use this when you want to just access the stage that way?or is it better to pass the reference to the stage in the class constructor?
Is it possible to pass constructor arguments to instance objects which I place on the stage? Are the instantiations of instance objects centralized somewhere as with .NET WinForms so I can just edit the xxx = new CustomRecangle() constructor?
public class CustomRectangle extends MovieClip { public function CustomRectangle(width:int, height:int) { this.width = width; this.height = height; } }
For example, I have the class Bullet, with a constructor: Bullet(start:Point, target:Point)constructor
But, if this Bullet class extends the MovieClip class, how do I pass start and target into it? Right now I am using attachMovie to create instances of the class. (They behave correctly with the static properties set by the constructor, but to be useful it needs arguments.)
want to make a sfw that receives parameters from the html tag. for example, when you embed youtube videos, in the <object> thingy you set the video you want to show. i want to do exactly the same, have a 'projector' (though not exactly videos), the swf knows what to do from the html tag params, and displays the right content. how do i red html params from the sfw (and how do i test it?).
also, is there any doumentation/examples on how to connect php/mysql to a flash movie?
I am trying to load a swf file in a browser and pass url parameters to the flash movie. How do I access the url parameters in the flash movie in actionscript?[url]...
I did find pointers on passing parameters through embed/object tags, but nothing on passing url parameters (and accessing them) just through a browser url.