ActionScript 3.0 :: Sending A Class Instance Reference To A Different Class Instance?
Apr 14, 2011
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].....
View 7 Replies
Similar Posts:
Dec 10, 2010
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]....
View 1 Replies
Jun 28, 2010
Given that both of these calls to getQualifiedClassName return the same thing (mx:Label), how would one go about programatically differentiating between an instance of a class and a reference to the class...
var lab1:Label=new Label();
var lab2:Class=Label;
var qcn1:String=getQualifiedClassName(lab1);
var qcn2:String=getQualifiedClassName(lab2);
In other words, how could I know that lab1 is of type Label, while lab2 is type "Class". typeof() simply returns "object" for both... getQualifiedClassName returns "mx.controls::Label" for both...
View 3 Replies
Jan 22, 2010
I 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]....
View 2 Replies
Mar 15, 2006
I want to retrieve the var reference of an instance of a class from within the class. For example:
ActionScript Code:
var ref:MyClass = new MyClass ();
//then via some method, I would like to get the var ref inside the class
ref.getRef(); //returns "ref" instead of [object Object]
[Code]....
You may ask why, well I want to do some spring cleaning inside this manager class I am making. Of course the above is a simplistic version of what I am trying to do.
View 2 Replies
Jan 7, 2005
how can I self refer to an instance of a class within the class definition file?Here is an example
PHP Code:
public function fireBullet(target:MovieClip) {
Bullet_mc = target.attachMovie("Bullet", "Bullet1", 1);
}
}
Now everytime I want to call the function I have to put this as my target, (fireBullet(this))I cannot just put it in the code as it gives me an error.
View 9 Replies
Sep 15, 2011
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?
View 2 Replies
Oct 14, 2009
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.
View 3 Replies
Oct 14, 2010
i'm playing around with Senocular's brilliant transform tool. Here's the code that I'm having issues with - it targets the instance name, which is great and works perfectly.
ActionScript Code:
_transformTool.targets = [pasteBoard];
_transformTool.activeTarget = pasteBoard;
Here's the issue. When I have an MC placed on the stage with the instance name of 'pasteBoard' the above code (which tells the transform tool what to transform), works just great. However, when I place the MC on the stage with AS and name it, the transform tool can't find it . Here is the code I'm using to place the MC:
ActionScript Code:
var pasteBoard:_pasteBoard = new _pasteBoard();
addChild(pasteBoard);
pasteBoard.name = 'pasteBoard';
pasteBoard.x=128.00;
pasteBoard.y=300.00;
Now, surely this should work as I'm even giving it an instance name? But it does not, it does not work even with no instance name, or when the class object name is different than the instance name. Weird huh? Surely this should work just fine as I'm doing exactly the same thing as placing it on the main timeline, just doing it with code. But the transform tool, referenced by the code at the top of this post, can't find pasteBoard.
Do I need to alter the code at the top to find pasteBoard by class instance? how would I do that?
View 4 Replies
May 23, 2011
class Foo {
public function bar():void { ... }
}[code].....
View 4 Replies
May 3, 2010
What I'm looking for is a way to reference the document class instance, to be able to access functions and variables that other classes need. I'm currently doing it with this little piece of code I found on some blog or forum.
Code: Select all// This is in the document class
private static var _instance:DocClass; // I have tried setting this to public and accessing it directly as well
public static function get instance():DocClass { return _instance; }
[code]....
This seems to work as it should in Flash CS4, but when I try to run the same code in CS5 I get the following error message:
Code: Select allC:UsersImpenDocumentsMy DropboxFlash Project\_SPELTankGameMenuShop.as, Line 238 1195: Attempted access of inaccessible method globalFunction through a reference with static type DocClass.
View 2 Replies
Dec 30, 2009
Is there a way to get an instance reference to the document class to call a method of it from the stage's timeline?I see that here's a possible solution: using a singletonOther solution I though of is using stage.getChildAt( 0 ) but it's not very nice.Is there an 'official' instance reference? because the document class is obviously instantiated at startup, but is that instance accessible in any way without having to use a custom solution like the ones mentioned?
View 1 Replies
Aug 21, 2011
I have this main (document class) in a Flash project:
package {
import flash.display.MovieClip;
import flash.events.Event;
[Code]....
Now: if I pass a reference (ref) of the main class to Other and I add clippo as you can see in the first case, I can reference the movieclip clippo from the main (getChildAt(0) is "clippo" from the main). But, is there any way to use the second method (no ref) and do the same from the main class? I can see clippo onstage when Other creates it but I can't understand where clippo "lives" into the DisplayList.
View 2 Replies
Nov 21, 2010
I've been searching around all afternoon, and am pulling my hair out. 1) I have a movieclip instance on stage (simple graphical element that represents platforms for a hero to run and jump along). I have placed it on the stage with an external class engine.as and in this class it is called myPlatform and is an object of Platforms.as. The movieClip is called platforms and from a trace(myPlatform.name) the instance name is instance3.
2) I am attempting to access the properties of myPlatform in an Enterframe event loop in my character control and collision class (called hero.as)
Basically here is the bit of code I am trying implement within Hero.as :
[Code]...
This all worked when I was writing actionscipt within the FLA file, on the timeline frame 1. I simply don't know how to access myPlatform from within the external Hero.as class! Do I need to create a variable? Is there a really easy way to do this with some syntax/command that I have not learned yet?
View 3 Replies
Jan 26, 2009
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?
View 5 Replies
Feb 17, 2011
Is 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();
View 1 Replies
Jul 22, 2009
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.
View 6 Replies
May 11, 2006
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");
View 4 Replies
Dec 23, 2006
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?
View 7 Replies
Aug 31, 2011
When I declare a class variable
private var myVar:MyClass = new MyClass();
It creates a new instance of that class that will trace as [Object MyClass].
However, as soon as I assign it to something
myVar = thisOtherVar;
It will now trace as [Object thisOtherVar].
I need to get it back to where it's just an "empty" blank class instance, if that makes any sense at all.
View 14 Replies
Dec 28, 2005
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?
View 10 Replies
Apr 6, 2010
I mean a have a class called Login and when I make an instance of this class
PHP Code: var log:Login = new Login();
doesn't give me the wanted results.
- When it is declared Document class it adds a child on stage
- When the same class is called manually (via the above code) although I get no errors nothing is added on stage.
View 3 Replies
Mar 31, 2011
I'm having a problem where I can't make an instance of a class in one class like I can in other classes all in the same package. When I call the update function from another class it doesn't work. I traced the xPos of the instance of the class I was talking about and I get zero, but that is incorrect so I'm thinking it's the above problem. If anyone knows what the problem is please tell. Here's my code:
[Code]...
View 1 Replies
Oct 7, 2010
I'm creating a Papervision3D scene in a document class. I have added an instance of a PointLight3D object. I'd like to create a class that uses the light instance in the main document class for its material. What would the Actionscript be to do this? I can't refer to the light as super.light because my class is inheriting the Sphere class. parent.light does not work either (even if I wait for the class to be added to the stage).
View 2 Replies
May 4, 2009
I'm kind off oblivious as to what I'm doing wrong here... I have two classes: - Alley - AlleyCat
[Code]...
View 8 Replies
Jan 9, 2010
I have a function that takes as parameters 2 instances of a (custom) class. But they can each be one of several classes, and I need to then call another function based on what type they are. I'd like to do something like this:
function any_any(inst1, inst2) {
this[inst1.classname + "_" + inst2.classname] (inst1, inst2);
}
[Code]....
Should I go and define 'classname' in each of my classes, or is there a better way to get the class name of an instance? I don't know how to get typeof() to return anything other than 'object' for a custom class, maybe it's possible?
EDIT: It would be inconvenient to use the instanceof operator, as each class can be 1 of 6 (currently).
View 3 Replies
Nov 4, 2011
Say i have a movieclip named a_Mc ( ClassA ) I have a sub-movieclip named b_Mc ( ClassB )
CASE 1: Accessing the sub-movieclip b_Mc which is already present inside the a_Mc movieclip
( Since Flash IDE has "Automatic instance naming" OFF )
ClassA mentions the name of b_Mc as => var b_Mc:MovieClip;
NOTE HERE: That the variable name MUST BE same as the name of the instance on stage.
So i can access it as : trace( a_Mc.b_Mc);
[Code]...
View 1 Replies
Aug 29, 2007
I've been playing around with custom classes. My objective was to create a custom class (Testing) that would create a box when an instance of the class is created. I've tried three different approaches, however only (3) seems to be showing up. I'm just curious why (1) or (2) doesn't work?
Also is there a better approach than (3)? Since at the moment it's been created on _root. I hope the box can only be accessible through the instance. Since I'd like to incorporate the whole idea of public, private, encapsulation, etc.
[Code]...
View 3 Replies
Mar 20, 2009
Does 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 Replies
Jun 3, 2010
I've got a hell of a lot of MovieClips in a library because they are all different shapes etc, so rather than creating them dynamically I've made them all manually.They all share the same base class in the properties dialog box (apartment.as) but all have an individual class in the dialog box. The apartment.as is as follows:[code]So for example one of the movieclips is called level1_01 and is placed within a movieclip called plan1. Within plan 1 there are a further 20 movieclips all called level1_02, level1_03....etc.When I click any one of the movieclips (that I've positioned on stage) is there anyway use the class name as an instance name? I haven't given each of them an instance name but was wondering whether it's possible to use the class name that I entered into the properties dialog box as it.
View 3 Replies