Actionscript 3 :: Parametrized Factory Method Using Actual Class Name
Jan 5, 2011
Rather than use a hard-coded switch statement where you pass it the string name of a class and it then instantiates the appropriate class, I'd like to pass the actual name of the class to my factory method and have it dynamically create an instance of that class. I thought it would be trivial and am surprised it is not working. I must be missing something quite basic:
sample code:
createProduct(50, "Product1Class");
createProduct(5, "Product2Class");
private function createProduct(amount:uint, productClassName:String):void {
var productReference:Class;
[Code].....
The only thing that may be a little odd (not sure) is that these "products" are actually linked Library items (ie: I have a movieClip in the Library that has a linkage to Product1Class and another to Product2Class both of which extend ProductBaseClass, which in turn extends MovieClip.
My data is of mixed types like String, Array Collection, Boolean. I have to populate the data into appropriate UI component - for example Boolean to check box, Array to List. So we have created a factory class which will return 3 different type of component based on the input argument.
MultiLineCheckBox which extends mx.controls.CheckBox and few methods are overridden to bring the multiple line label. [URL]. It works perfect.Am using the MultiLineCheckBox in the entire application wherever I want check Box. Now I went into a scenario where I want check Box instead of MultiLineCheckBox. How to rewrite my CCheckBox to handle MultiLineCheckBox and also default CheckBox? Each of the CCheckBox class has lot of methods init.
I've got this issue implementing the Factory method. Following is the snippet of the the main chart class which calls ChartFactory's method to attain the proper object. I Type Cast chartobject so as to be able to call the Show method; I am apprehensive about that as well.
container = new VBox(); container.percentWidth = 100; container.percentHeight = 100; super.media.addChild(container); chartObject = new ChartBase(); [Code] .....
How does one actually go about writing a file out to a directory from inside a class or is there an actual class that handles that like in other languages?
I'm trying to make a game that is turn-based and allows players to first be selected, then click on a grid square to move there. However, I can't get a way for a variable storing whether the player is selected to be passed back to the actual grid class. I want the grid class to have an event listener that when the grid is clicked on, it will move the player there only if the player is selected. But whenever I try to declare a global variable either inside the grid class or even a document class or even access properties of the character class I'm trying to move I get errors.
So I have a movie clip associated with an external class in the linkage dialog. I put that movie clip on the stage. I have another external class that contains some code (not for the movie clip but for the stage). When I access the custom properties of the class in the actual flash file (not the external code) everything works fine.For example.myMovieClip.explodeTheCode = true;works in the main movie. However, it doesn't work in the external flash file when I have a reference to that movie clip.myRefToCustomMovieclip.explodeTheCode = true fails!It throws an error. In java, I'd just import the custom class the movie clip is linked to and then I can call all the extra custom methods on the movie clip in the external class I want. However, this does nothing. I still can't access any properties.So my question is, how do I access the custom features of a movie clip (that is linked to a custom class) from an external code file. It works in the movie, but not in the external source code.
at the moment I've got a (perhaps) requirement for specifying precedence to certain queries within a movie, which will be dealing with the upload of assets through flash to a php backend.
Does anyone have any info, or maybe a pointer in the right direction with regards to how flash deals with the internal URLRequest stack. If that's even how it works.
I may be vastly over simplifying the way flash works, but the only analogy I have is my own exploration into protoyping an AJAX query stack a couple of years ago, where you'd be able to alter the stack ordering depending on request priority as it were.
Right now, I've got a switch statement which is being used to create objects based on a string. There are three types of objects which extend an abstract generic object. I should really be using a factory pattern, which I'm figuring out right now. My issue is thus: flexibility of the factory pattern, but right now I'm storing the would-be products in special dictionaries dedicated to their type.
I have two classes. The Main class calls a function, which is defined in a Second class.I'm getting the following error:Error 1120: Access of undefined property myFunctionBasically, I am creating buttons in the Main class that will add a corresponding Child to an Object in the Second class (if you click one button, child x1 will be added, if you click another button, child x2 will be added, and so forth).Here's the relevant code for the Main.as file:
I have a rather silly question but as3's document class always gets me confused.I have a public method on my document class. I want to call this method from another class that is instantiated from within an object in the library of the flash file (the same one on whose document class I want to call a method).
I would like to be able to call a public method of DocumentClass from GameClass. I don't know how to do that, I tried instantiating an object of DocumentClass within GameClass which simply throws me into an endless loop and after a short while application crashes.
I have a class, my document class, called SilkRoadTweeter. as I also have a class called User.as In my User class I need to call a method called nonce() I have tried this, trace(SilkRoadTweeter(root).nonce()); But I get the error, TypeError: Error #1009: Cannot access a property or method of a null object reference.
I have a public method on my document class. I want to call this method from another class that is instantiated from within an object in the library of the flash file (the same one on whose document class I want to call a method).
I have tried everything and nothing seems to work. How do I do this?
I have a class called Unit. When I use this class in a .fla file, I create it by saying:
var unit00:Unit = new Unit(...);
So then it creates a gfx representation of the screen for me. I would like to have a method like this:
PHP Code:
[code]....
So how do I get this to work? I know that delete this will not work when defined inside the class. How do I target the .fla's instance name when I don't know what it will be called?
They are located in the same package and are both importing each other. I am trying to call a function from Class2 within Class1, but I don't know the syntax. I tried: Class2.godoThisThingNow(); But it gave me an error 1061, call to an undefined method. What's the proper syntax for this, and is it even possible in AS3?
From my LoadXML class I am trying to call a method, named onBackgrLoad, which sits inside the Main class. I made the method onBackgrLoad public. Inside the LoadXML class in the method ParseData I added an event listener. This is supposed to call onBackgrLoad but it doesnt work
I'm currently making my own shoot'em up game where the player can switch between two player types which will fire their own bullet type in this case, squares and circles. I've setup the player switch function via pressing "space" button (switching between the two player types) and the default bullet type is "squares" and I'm not sure to approach the coding with changing the bullet type to "circles".I've written 2 classes for the bullet and player setup:Player Class: Creates instance of bullet on screen and enables the switch player type function
Bullet Class: Enables bullet properies and bullet types Player Class: Code:function onKeyDown(event:KeyboardEvent):void {if (event.keyCode == 32) //// pressing/holding "space bar" to function
There is a Point (flash.geom.Point) class in as3.I want to add method to class Point (e.g. convertToStagePointMyMethod()) and I'd like to call this method by using [code]What should I do in order to add this method to class Point? Is it possible without inheritance. I'd like to use it like "partial" classes in .NET
this is a massively simplified version of what I need to do but using the following classes, what do I need to put in the second class to call the function from the first? This class contains what I want to call:
I have two classes, in one (the Start class) I want to run a function I created in another (the Brown class). I commented in Start where I want to call the "addBrownListen" method. I tried doing it with the line: Brown.addBrownListen(); But that didnt work.
Here are the two classes: package { import flash.display.MovieClip; import flash.events.Event; public class Brown extends Rebounders { [Code] ......
I wondered if there is a simple way I have have a snippet which traces the name of a method when called. I found className which is half-way there, but not something for the method... a 1-line trace(...) is what I'm after so I avoid typing the method name and leaving myself open to mistakes.This is for testing the order things happen, when I don't want to step through in the debugger.
Basically I want to create my own drawRect() for as2.normally, I would just prototype it:
Code: MovieClip.prototype.drawRect = function(x,y,w,h){ //etc.. } and then I would be able to use it like: Code: mymc.drawRect(a,b,c,d);
Is there a way to make that function a class so that I can still call it from a movieclip directly? I read in another post somewhere about calling super.drawRect() in an extended class, but I'm not 100% on how to actually do this.So far I have what is below. I don't think I'm supposed to be declaring the mc var, but I can't think of another way to do it.
Code: class drawRect extends MovieClip{ private var mc:MovieClip; function drawRect(x,y,w,h){
how I might go about adding a method to flash.display.Graphics so that I can call it just like I would drawRect()
for example, graphics.drawDottedRect()
I tried extending Graphics with a new class called Graphics and adding my function but this does not work. I'm sure that the display object is making its graphics instance from the real flash.display.Graphics class and not my extended class.
If I import class X with method Y, what happens? Is every method and field included in the class? Or is it that when I type y() I'm actually referring to x.y()?
var pic:Picture = new Picture; // custom dynamic class with a method called onLoadPIc pic.onLoadPIc = onLoadMe; i'm trying to change the method of my custom class on the fly for this instance...