ActionScript 3.0 :: Access A Display Object From A Different Subclass?
Sep 4, 2009
I am trying to figure out how to get access to a display object that was created in one subclass from a different subclass. Here�s my example: I created PnkRabbit.as and BluRabbit.as as separate classes (both extending RabbitTemplate.as).
I called them from Client.as (document class for Rabbits.fla) using an addRabbits button. Then I created MovePinkRabbit.as and MoveBlueRabbit.as (both extending Move.as which is listed as a protected var in RabbitTemplate.as). With this setup I can run Rabbits.fla and get a trace statement to come from MovePinkRabbit.as and/or MoveBlueRabbit.as, but I can�t figure out how to get access to the PinkRabbit and BlueRabbit movie clips from MovePinkRabbit.as and MoveBlueRabbit.as, so that I can actually move the clips. Here�s some of the code, (complete code and FLA in zip file).
I have MCs loaded from the Fla library through my main class. These are drag objects. When one of these is clicked, I want the player to run a function that will disables some based on one selected. When I tried the obvious reference, I had an error. I've been advised to add these to an array, but I can't even do that.
Code:
import HO_42;
I set the objet to a variable above the constructor function:
Code:
private var office:HO_42;
The constructor calls a function that loads the objects to the stage (and this works fine if I don't try to access the object), here is an example of the load and access code:
Code:
office = new HO_42(); addChild(office); office.x = 441.9;
Base extends MovieClip document class extends Base how would Base properly access a display object which is already placed on stage in the flash ide? for example creating the var in Base's class definition = 1152: A conflict exists with inherited definition in name space public. but just referencing the var = 1120 undefined property , as the item is only a variable of the document class Is the only approach to let the classes load, then create the display object rather than have it on stage already?
I'm trying to access a button through my subClass, the button I'm trying to access is located on timeline and this is the error I'm getting once I run the code:1120: Access of undefined property btn_Test., maybe someone could look at the following code and indicate what cause the error
I am new to AS3 and am working on a project where I got stuck trying to figure out the best way to access a variable set in my MainDoc from a subclass. Nothing I've read has either made sense or seems like best practices. I understand a little about encapsulation to know that a subclass shouldn't be able to listen to a parent, but there has to be a way to do this with OOP in mind.[code]...
package { public class priyan { public var a:String = "priyan"; public var b:String = "bhagavath"; public function method():void { trace(a); trace(b);
The above script, i got it from one of the ActionScript 3.0 book. i just work it out in flash. But it shown error 5000: The class 'priyan' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.
Now how is it that I can add the variable SPRITE which is a Sprite in the OBJECT_square class to the display list of MAIN class? I've tried addChild(SPRITE) and super.addChild(SPRITE). If everything works I should see a red square somewhere on the screen but right now its all blank, except for the text drawn in the MAIN class.
Basically I want it so i can just make a new OBJECT_square and it will draw itself without any more instructions from the MAIN class.
I designed and added in the library MyMovieClip,then i defined a class MyClass, and set up MyClass as BaseClass of the MyMovieClip.Until here All works fine.Then i started writing MyClass. Pointing the attention on a private varible theMC:MovieClip.i wrote the setting function to link this private variable to a Mclip instance in the stage.[code]The class MyClass must subclass flash.Display.MovieClip since it is linked to a library symbol of that type.
5000: The class 'CustomLoader' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.This is the error I get when I try to run my flash project.url...but I use Flash CS4 instead of FlashDeveloper.I googled about this problem, but havn't find a working solution.What I've done in an attempt to fix the error is that I:
1. Added Code:import flash.display.MovieClip; to CustomLoader.as
2. Added a Base class to intro3D.fla. The settings can be seen in this image:url...
I've defined two classes, one of which extends the other. The superclass defines a constant and I can't seem to access it through the subclass.
Code: public class BigClass { public static const BIG_CLASS_CONSTANT:String = "Hi Mom.";
[Code]....
Shouldn't polymorphism allow a subclass to access constants of the classes they extend? Does the subclass have to reference the parent constant in some other way than a simple extension? Do I actually have to declare that constant in each and every class that decided to extend from that parent (but then how would the parent refer to it?)? Or (and this is the most likely) is there something completely different that I'm missing?
\psfHomeDropboxDevelopmentRepositoriesGITi-ccPowerhouseNotesmasterflashliblibnoteNotesCore.as:1: 5000: The class 'lib.libnote.NotesCore' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.
Firstly, what I have tried and what I am using:
[Code]...
I am mainly from a Java background, so perhaps I am misunderstanding an ActionScript concept; if anybody could point me in the right direction I would be extremely grateful!
Can I access a static variable of a subClass' subClass? I don't want to instantiate it, just looking to get the variable because it has already been initialized by the subClass.example:
package { public class A extends MovieClip { private var classB:B = new B();
If I create a rectangle with 100px width and 100px height and then rotate it, the size of the element's "box" will have increased.With 45 rotation, the size becomes about 143x143 (from 100x100).Doing sometimes like cos(angleRad) * currentWidth seems to work for 45 rotation, but for other bigger angles it doesn't.At the moment I am doing this:
var currentRotation = object.rotation; object.rotation = 0; var normalizedWidth = object.width;
Running Flash CS3, I've reviewed the lynda.com tutorial on building particle systems in ActionScript 3.0 to try and build some shooting sparks in an animation.I'm getting stuck at what I think is a really elementary point, but I can't seem to get past it.
Basically, all I'm trying to do at this point is create a class called Particle (which I will teach to do things that particles do a little later) link it to a MovieClip on the stage in my .fla file and use the particle's update function to move it across the stage in a manner defined in the instance (so I can later give different movement properties to each AS generated instance of the MC). I know there are easier ways to accomplish my base task without loading an external package, but this seems so strightforward that I must be doing something very simple wrong I just can't see so I thought I'd post the code here and see what I'm missing.
I start with a file called Particle.as in the same folder as my Spark Test.fla file.
In Particle.as I have the following code:
package{ import flash.display.*; public class Particle extends MovieClip { public xVelocity:Number; public yVelocity:Number; public function Particle() { xVelocity = 0; yVelocity = 0; } public function update():void { this.x += xVelocity; this.y += yVelocity; } }}
So I'm declaring that all particles are built with no motion, but if they are explicitly granted an x or y velocity, they will move by that much when the instance's update function is called in the timeline.
Then in my Spark Test.fla file, I have a small shape in a MovieClip called Spark. In the Linkage properties of Spark I have chosen to Export for ActionScript and Export in FIrst Frame. The class is called Spark and the Base class is Particle. For testing purposes I've dropped an instance on the stage and called it spark. Then in the actions layer in the first frame (the timeline is just the spark layer and the actions layer, one frame long each with no "stop();" so it should run forever) I have included the following code:
spark.xVelocity = 5;spark.yVelocity = -1; function updateSpark(event:Event):void{ spark.update();} addEventListener(Event.ENTER_FRAME, updateSpark);
What it looks like this should do is on each ENTER_FRAME Flash should call updateSpark which is a function that runs the update() event for the spark instance which is a instance of a movieclip that has an update event which moves x and y position by their relative velocity variables. This all seems pretty straightforward to me, but when I ctrl-Enter to test the movie, I get the following 3 compiler errors:
Particle.as Line 1: 5000: The class 'Particle' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type. Particle.as Line 7: 1071: Syntax error: expected a definition keyword (such as function) after attribute public, not xVelocity. Particle.as Line 7: 1084: Syntax error: expecting rightbrace before semicolon.
I am having an issue with compiling a .swf. I get the following error on what seems to be related to the images. There is about 40 that are all very similar the the error code listed below:
5000: The class 'com.decalmywall.Emb_EMB_BORDER' must subclass 'flash.display.BitmapData' since it is linked to a library symbol of that type.
I'm trying to build a shuffle function that somebody gave me into my card game. I two external .as classes; one is Shuffle.as, which is my document class, and the other is card.as. I'm building the shuffling function into Shuffle.as. I think I'm getting close to making it work, but there are some problems. I keep getting this error message: "5000: The class 'Shuffle' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type." Here is my code. Shuffle.as code
It's too complicate to explain but I'll give you an example
I have an AS3 ResultEvent Object and this object has several propeties which can be accessed by this like:event.result.name or event.result.age and, I have this String variable: eventProperty:String that contains "name" or "age" How do I access to event.result. with the variable?
Can you make one Bitmap Object (I'm using an external jpg) or something similar, and then display it many times simultaneously without creating a separate object each time?
Also, would they be easily removed or hidden?
I've got a little checkmark jpg graphic loaded here, but I'm not sure how to go about using it in many places at once.. I can only display it in the one place at any one time...
I'm thinking there might be a way to load the picture once, then use its bitmapData elsewhere in new display objects somehow, without needing to reload the image over and over?
It's my understanding that a display object cannot be in the display list more that once.So if I add something to the stage shouldn't a second addition of the same object replace the first? for instance:
[code]...
there should now only be one "myDisplayObject" on the stage.
How can i cast a object to another type? in AS3 i tried putting (objectType) infront of the variable but it doesnt work, below i have added objects of fishes into the child, and i am getting the fishes back out when mouse down is triggered, and then calling the fishes what to do. however i cant call the method of the custom class fish because it is a displayobject.[code]...
I am developing an application with Flex for the GUI and Restlet for the webservices. I have a strange problem. I put my XML as a property on a generic object, and send it as part of a POST request. But in the Restlet webservice, this XML is irretrievable. How do I retrieve it? I tried initialising the received Representation object to a DomRepresentation, but thats not working. If I put the received Representation object into a Form object, then getFirstValue is returning that XML as a string! I noticed that the contentType of the HTTPService was application/www-form-encoded so I set it to application/xml and its not helping either. I use restlet 2.0m6 and here is the code snippet that I use -
So I have two movie clips linked with classes- one with the class "theList" and one with the class "challengeBar". I need to use a function in challengeBar to access a function in the theList. They are both immediate children of the stage.so for now I have this (in the challengeBar class)-
public function populate(){ this.textBox1.text = myList.dequeue(); }
should it be something along the lines of root.myList.dequeue? or stage.myList.dequeue? How can I access that function?