ActionScript 3 :: Creating Instance Of Class - String Presentation
Sep 29, 2011Can I create an instance of a class from AS3 just knowing it's name? I mean string representation, like FlagFrance.
View 2 RepliesCan I create an instance of a class from AS3 just knowing it's name? I mean string representation, like FlagFrance.
View 2 RepliesIs there a way to generate an instance of a class that implements an interface based on the name of the class?
I am trying:
var ClassReference:Object = getDefinitionByName("movement.OuterSpaceMovement") as IMovement;
var m:IMovement = new ClassReference as IMovement;
trace("startup..." + m);
-But I am getting an error message ReferenceError: Error #1065 (OuterSpaceMovement) not defined.
I have several classes that implement the same interface (IMovement) but I need to be able to generate new instances of these classes and then pass these instances as a datatype (IMovement datatype) to other classes...
So then I tried:
var ClassReference:Class = getDefinitionByName("OuterSpaceMovement") as Class;
var m:IMovement = new ClassReference() as IMovement;
and this doesn't seem to work...but the following
var m:IMovement = new OuterSpaceMovement();
I'm trying to create a new instance of a MovieClip when the original one has been used. Would sound easy enough. Just use: var
instanceName:ClassName = new ClassName();
the class name/mc in the library im trying to duplicate is MCg1 so
var instanceName:MCg1 = new MCg1(); right?
However, the particular object in the library i'm trying to duplicate has a base class that is an external class file (just to control it's drag drop functionality)... i.e baseclass is not set to the standard flash.display.MovieClip, or whatever the case maybe. So i end out with a: TypeError: Error #1009: Cannot access a property or method of a null object reference.
I have a situation wherein I would like to know if there is any impact on performance.
I have two custom classes customClass1.as & customClass2.as written below:
[Code]...
I am having some problems with creating different instance of the same class in as2..Pretty sure this should work in as3, so I'm not sure exactly.[code] I thought using the new keyword should create a new object independent of other instances..unless constructors are static in as2 and i just didn't know it.
View 1 RepliesIs there anyway to include a function or overrite something in a class that'll output a custom string when the object is called as a string?
So for example if I created a class named "myClass" and I instantiated it:
Code:
var myObject : myClass = new myClass();
When I:
Code:
TextControl.text = "blah blah, " + myObject;
myObject is getting casted as a string. Normally it would output:
"blah blah, [object myClass]"
Is there a built-in function that recast the object as string? Is there anyway for me to change that string output? I know I can just make a public toString() method in the class or something, but just wondering if there was something better.
In as simple an example as I can think of, I have two classes: Dog and Cat. Both are subclasses of Animal, in this stupid example... I know how to create instances of both, however I don't know how to dynamically create them by name from a string. It would be something like...
[Code]...
When I try to create a new instance of a class that I created from a symbol in the library, I get a 1010 (A term is undefined and has no properties) error. I gave it a class name in it's linkage properties and it extends MovieClip. Is there anything else that I'm supposed to do? Maybe it's a syntax error when I'm creating an new instance of the class. It used just like any other class or datatype, right?
View 8 RepliesTopic title explains what i want to do. Say I have a variable roomNumber (a string) and in a game where i move about, roomNumber will change (say, room34 to room35). When a new room is visited i want a new instance of my class Room to be created, but with the instancename of what the variable currently is. (point is that i can go back to a previous room, without it being changed because the instance has already been created) so... roomNumber:RoomClass = new RoomClass(); well, it unfortunately works so that the new instance is named roomNumber, and not room34.
View 4 RepliesMaybe nonsence but is there a way to make some Class instance when owning only its String name?
I mean,
function makeClassInstance(className:String):void{
var instance: Class(className) = new Class(className);
}
That's all about valueObjects. I wish to retrieve classNames from values setted up in main app for universality.
I am building a simple tamagotchi - alike application in AS2 and Flash is acting kind of weird on me. Lets say i have a .fla file with all my animations called Kitty.fla, then I have an external .as file called Kitty.as which contains a Kitty class with the itty(attribut i need to give it) function.On the 1st frame on the timeline i have the following:var kitty:Kitty = new Kitty('my attribute');when compiling the movie, flash automatically creates an instance of Kitty but WITHOUT my attribute (its given a default value specified in the code) and then proceeds with the instance according to what i wrote above. So at the end i basically end up with two kitties, one with default attribute and second with the attribute specified by me, while I only need the one with the specified attrribute
View 7 RepliesI would like to make a new instance of a MovieClip within my library from code written in my keyframe. I relise that you can do this by making a class and using the codeCode:var instancename:movieclipname = new movieclipname(); and with the MovieClips class I would need to extend MovieClip and nothing else. I am unsure if you put in the name of the MovieClip or the name of the MovieClip class in the code above so feel free to correct me. But instead of doing this can I just add a MovieClip to my stage with doing this
View 4 RepliesI have a question regarding AS3 memory management. Supposing I created an instance variable for a Class, in this case or type Sound:
public class SoundStore extends Sprite{
var s:Sound;
Then within various class functions I referenced this variable multiple times, each time I wanted to load in a new sound:
s = new Sound();
Am I correct in thinking that each time I created a new Sound I would be overwriting the previous allocated memory?
I have recently started out with flash oop concepts and was wondering how to do create an instance of an extended movie class without dragging and dropping the clip from the library ....I have figured out this method..
for(i = 0;i<100;i++)
{var mc:MovieClip = attachMovie("ball","dasd"+i,_root.getNextHighestDe pth());
mc._x = Math.random() * 600;
mc._y = Math.random() * 600;
}
but this way I cant pass arguments to the constructor function of the ball class..
I just want to ask if is it possible to call a movieclip using the String Class together with it's instance name to use gotoAndPlay() method. I know how to use the instance name and the method but then what if I want to use a string together with the instance name and the gotoAndPlay.
View 1 RepliesDoes creating a new instance of an Object that uses an identical name to an older instance, delete the previous instance? Or should the original instance be deleted first? The code uses a ridiculous amount of XML vars. Isn't it less memory intensive to parse the XML and save the properties to an Object, and then delete the XML Object, rather than keep the XML Object around and reference it's child nodes directly? Is it better form to break up a huge XML file (>600lines/3200vars) into smaller chunks?
View 1 RepliesSo I have one movie clip on stage rect_mc and document class Main.as I can import movie clip to document class with [code]...
but is there any way to manipulate rect_mc without craating new instance and attaching it to a stage with addChild()
Is it possible to rename slides dynamically in a Flash presentation that is created using the Flash Slide Presentation template in Flash CS4. So, if I have a presentation with 50 slides and they are named 001 to 050 and I need to insert a slide between slide 010 and 011 is there a way to have Flash renumber them or do I have to just manually rename.
View 2 RepliesI have a base class which is being created via remote_object [RemoteClass alias] from the server.I have other specialized classes that are derived from this baseclass, but serialization with the server always happens with the base class.The base class has meta data that defines what the derived class is, for example
[RemoteClass (alias="com.myco...')]
public Class Base
{
[code]....
I'm able to create all types of files except for a Flash Slide Presentation. As soon as I create a new presentation I get a R6025 Pure Virtual Function Call error, a message pops up saying Flash has unexpectedly quit and then the program hangs until i have to manually end the program in my task manager.
I've tried to find out a bit more but it sounds like people only get these errors pertaining to their browsers so not sure what this error has got to do with Flash CS4.
I'm using a library that has a function that returns an instance of some class Engine.
I'd like to tack on some interfaces to Engine, so I subclass it class InterfacedEngine extends Engine implements AwesomeInterface. but when I change the code that uses the classes from this:
var engine:Engine = generateEngine();
to this: var interfacedEngine:InterfacedEngine = generateEngine();
It gives me a runtime error (elision mine):
TypeError: Error #1034: Type Coercion failed: cannot convert ...::Engine@1bc2bf11 to ....InterfacedEngine.
What about AS3 classes am I misunderstanding?
I have to admit I pretty much ran away from Flash when AS2 came along and only used it for animation purposes over the last 5 years.So I'm having a major crash course in AS3 in Flash CS3 and I'm not enjoying it one bit. I'm getting maybe 10mins of finished work per hour as I try to figure out the limits and rules of AS3. Quite often it seems that AS3 simply can't do what I want it to. Anyway: Characterchecks.as is the main class and it loads a bunch of XML into four arrays. The file starts like this:[code]If I trace the value of, say, cc._Categories from the main FLA, it's empty. I'm guessing that the next line of AS in the main FLA doesn't wait for the previously called function to complete? (This may tie in to my next problem)My next step is that I want to display various things based on the data in the array. I have another class, Display.as which will hold all the functions to create the items on display. I thought it would be best for these to be a separate object. I wonder if I'm right?
So I declare an instance of Characterchecks in the main FLA and call it cc, and then run the functions to populate the arrays... Now I create an instance of Display and call it cd. How can I get functions in cd to see the values of the variables in cc? And if the main timeline can't tell that the functions aren't finished filling the arrays, how is cd supposed to know?I might be asking dumb questions, or maybe I'm doing things ***-backwards, I don't know. I'd appreciate any help, I really would. This whole thing has me at the end of my tether... being the most technically advanced person in my circle of co-workers and web design friends means I have no-one to explain why things need to be done a certain way or what the best way is.
I'm creating a little game - The player controls a character that follows the mouse. Pigs run away from the player, and the player has to get them all into a pen. To make the game a little more difficult I'm trying to add an enemy - wolves, that attempt to perform a 'hunt' method every x seconds. This method sends a reference of the wolf instance to Main (my document class) and Main then loops through the pigs on stage to see if there's any nearby. Now as far as I know this works - my problem is I'm unsure how to send the pig instance reference back to the wolf that called the hunt method, so it can then 'target' the pig, and then attempt to pounce on it.
This is my Wolf class:
Code:
package
{
import flash.display.MovieClip;
import flash.events.Event;
[Code].....
Quick question. I have been Googling this all morning, but it's either not there, or else written in a way that doesn't register. I am inclined to believe the latter, as this seems like it should be something completely trivial to me. I made a small Flash file using AS 3.0, and this is the first time I've really been able to stick to the OOP way of doing things and not hack together a mix of stuff from the timeline to get around not having everything work in the classes.
So I'd like to keep it that way, but one thing is eluding me: I can't call a method of an instance of another class (than the one I'm calling from) without resorting to "DocumentClass(root).instanceName.method." Intuition tells me there has to be a better way of doing this (like, without having to reference the document class every time I call another class instance's function; and CERTAINLY without having to use the word "root" - that just seems so Flash 5 to me. Does anybody have a better way of doing this that they can share?
[Code]....
I have a general / somewhat newbie question. Is it better practice to call a function from another class like so:
[Code]...
Does one way free up more memory or enhance performance?
how do convert the myString var which is a string to the class name?
var myString:String = "movieClipInTheLibraryClassName"
var t:myString = myString()
I've done a class to be able to listen to the event for a CLASS not on an instance.
Code:
class net.webbymx.events.XClassEventListener {[code]....
why did I do this.It cames with my rugby game.I have player in two teams. When a player throw the ball I want the other teammate to act like "wait for ball" and the opponent like "seek for ball". Plus I'm lazy (and I don't want to register the listener for each instance of the player I'm creating). So this class is made to be able to handle as many instance of a class I want without adding a listener on each of them. I'm just creating a global listener on the class and then I will be able to receive dispatched event for any instance of this class .so in my team I can do
Code:
XClassListener.initialize(this);
this.addEventListener("throw", "net.webbymx.game.Player", "wait");
and in my opponent team I can do
Code:
XClassListener.initialize(this);
this.addEventListener("throw", "net.webbymx.game.Player", "seek");
i'm having some problems with as3
[Code]....
this is my code, i'm trying to set the title value for every child instance of eventChild, as i am new to action script in general, and action script 3 in particular i don't really know what i'm doing wrong here. I'm trying to set the text for ev1.title1, ev2.title2, etc. from values in eventChildren like this : first child, sets ev1.title1, second ev2.title2 and so on.
[Code]....
I am trying to capture the name of a target and add the letters "hl" on to the end and then set the visibility of another object with this modified name to true. Here is the code. The trace shows exactly what I want. Now how do I take that and set the visibity to true?
Code:
var highLight:String = evt.currentTarget.name + "hl";
trace(highLight);
highLight.visible = true;
Let's say i have a bunch of balls/cells. I'm having trouble figuring out how to make it so that every other ball bounces off of every other ball.
so in short, it's really one instance being able to check all other instances of the same ball class?