ActionScript 3.0 :: Accessing Stage With Subclasses?
Jan 14, 2011
In the below example, stage is always null. If I move the listener for enterframe to TestSubClass, it obviously works OK (even if the added function remains in TestClass?) - but why can't I detect stage in TestClass and reuse that code for all classes that extend it?
Some code:
Code:
// ParentClass
var testClass:TestSubClass = new TestSubClass();
this.addChild(testClass);
I'm trying to access a MovieClip object in a SuperClass from a SubClass. The only way I can tell this is possible is through an event dispatch, but I'm dealing with a preloader and a loaded external SWF. So I can't make an instance of the "not yet loaded" classes because I'll get errors. Furthermore, the objects in both SWF need to be controlled in sync.
- A.fla includes buttons, movie clips and also B.swf is loaded in A.fla using a LOADER
- i want to access elements in A.fla, from the actionscript codes inside B.fla to modify those movie clips and buttons based on actions going on in B.swf
for instance, lets say there is a button X in A.fla, and there is a button Y in B.fla, B.swf is loaded into A.fla, and I want the button Y to erase button X when clicked.
general question: accessing elements in a stage, through a SWF file loaded into that stage.
This is a little odd but I need to know all subclasses of a specific class. So let's say I have the base class called Shape and 3 subclasses (Circle, Triangle and Rectangle) that implement it. I would like something like this :
public function getSubclasses(aClass : Class) : Vector.<Class> { //??? }
that returns a vector containing Circle, Triangle and Rectangle.I unfortunately cannot count on the fact that each subclass be instanciated at least once before that function is called.t the moment I need to manually add the classes to a list but this is error prone (if I forget) and also not as versatile as the function proposed above would be (since I would need to make a new list for every class I want the subclasses of).
Trying to find a straight answer for this. I am going to be creating some sub classes in actionscript 3. I was wanting to know if it is possible to override the parent class. If so, do I need to put a override assigner on the parent class method or what.
What Im trying to do is to call a function called e.g start(); from a class that extends sound. Iwe been trying for hours now. How can I make this work?
I've been having trouble with scope in subclasses, where variables that I would like to be local to each instance of a class are instead global. For example:
Code: class Prototype extends MovieClip { //Various functions all clips have access to } class Ship extends Prototype {
[code]....
I've found that if I instantiate more than one ship, the hitboxes array is populated with clips from every instance of the class, instead of staying local to each instance as I'd like. Is this because I'm attaching them with a constructor?
how subclasses, instances, and inheritance work. The below code isn't actual project code, it's theoretical code, generalized to a simplistic level so that we can talk about the big issues. I have animals_app.fla, with a "Dog" class MC and a "Cat" class MC. Both "Dog" and "Cat" are subclasses of "Animals"; animals_app.fla uses document class "Main".
Intuitively,I think Animals should declare that every subclass should have some animalSpecies ,and each subclass will define the value of its own animalSpecies. It wouldn't make sense for Animals to provide any default value, because it will always be different per subclass.Is this correct?
I had tried out some code similar to that below, and was perplexed because it seemed like whenever a subclass tried to define a value for its own animalSpecies variable, it was actually changing the value of the variable in the Animal class, but that's not what I want. How do I rewrite this code so that each subclass defines the values of variables it inherits from its superclass, without altering the superclass? And how would I define the value of variables for each instance of a class, so that I'm only changing the values of that instance, without altering the subclass?
Also, conventionally, what should be in my Main class? Only the addChild code which attaches MCs to the stage? Or should the values of variables be defined in Main? What am I missing?I recently read Foundation Game Design with Flash and didn't feel like the explanation was sufficient.
I'm trying to figure out how subclasses, instances, and inheritance work. The below code isn't actual project code, it's theoretical code, generalized to a simplistic level so that we can talk about the big issues.
Let's say I have animals_app.fla, with a "Dog" class MC and a "Cat" class MC. Both "Dog" and "Cat" are subclasses of "Animals"; animals_app.fla uses document class "Main".Intuitively, I think Animals should declare that every subclass should have some animalSpecies, and each subclass will define the value of its own animalSpecies. It wouldn't make sense for Animals to provide any default value, because it will always be different per subclass. Is this correct?
I had tried out some code similar to that below, and was perplexed because it seemed like whenever a subclass tried to define a value for its own animalSpecies variable, it was actually changing the value of the variable in the Animal class, but that's not what I want. How do I rewrite this code so that each subclass defines the values of variables it inherits from its superclass, without altering the superclass? And how would I define the value of variables for each instance of a class, so that I'm only changing the values of that instance, without altering the subclass?
Animals.as package { import flash.display.MovieClip; public class Animals extends MovieClip { public static var animalSpecies:String; public function Animals() {} }} Dog.as
[code]....
I recently read Foundation Game Design with Flash and didn't feel like the explanation was sufficient. I've tried scouring the web for OOP tutorials, but they're either too basic or too far over my head. Can someone please explain where I should be defining values of variables for classes, subclasses, and instances?
I'm an AS3 newbie and I'm trying to figure out how subclasses, instances, and inheritance work. The below code isn't actual project code, it's theoretical code, generalized to a simplistic level so that we can talk about the big issues.Let's say I have animals_app.fla, with a "Dog" class MC and a "Cat" class MC. Both "Dog" and "Cat" are subclasses of "Animals"; animals_app.fla uses document class "Main".
Intuitively, I think Animals should declare that every subclass should have some animalSpecies, and each subclass will define the value of its own animalSpecies. It wouldn't make sense for Animals to provide any default value, because it will always be different per subclass. Is this correct? I had tried out some code similar to that below, and was perplexed because it seemed like whenever a subclass tried to define a value for its own animalSpecies variable, it was actually changing the value of the variable in the Animal class, but that's not what I want. How do I rewrite this code so that each subclass defines the values of variables it inherits from its superclass, without altering the superclass? And how would I define the value of variables for each instance of a class, so that I'm only changing the values of that instance, without altering the subclass?
I recently read Foundation Game Design with Flash and didn't feel like the explanation was sufficient. I've tried scouring the web for OOP tutorials, but they're either too basic or too far over my head. Can someone please explain where I should be defining values of variables for classes, subclasses, and instances?
I've just found a strange error when deserializing from a ByteArray, where Vectors cannot contain types that extend Array: there is a TypeError when they are deserialized.TypeError: Error #1034: Type Coercion failed: cannot convert []@4b8c42e1 to com.myapp.ArraySubclass. at flash.utils::ByteArray/readObject() at com.myapp::MyApplication()[/Users/aaaidan/MyApp/com/myapp/MyApplication.as:99]Here's how:
public class Application extends Sprite { public function Application() { // register the custom class
I have a button, inside an mc1 which when clicked it plays [TweenLite.to(mc2, 2, {frame:1});] inside mc2 -which located back on the stage. Currently I get the error of "access of undefined property)".
how subclasses,instances,and inheritance work. The below code isn't actual project code, it's theoretical code, generalized to a simplistic level so that we can talk about the big issues.Let's say I have animals_app.fla, with a "Dog" class MC and a "Cat" class MC. Both "Dog" and "Cat" are subclasses of "Animals"; animals_app.fla uses document class "Main".
Intuitively, I think Animals should declare that every subclass should have some animalSpecies, and each subclass will define the value of its own animalSpecies. It wouldn't make sense for Animals to provide any default value, because it will always be different per subclass. Is this correct? I had tried out some code similar to that below, and was perplexed because it seemed like whenever a subclass tried to define a value for its own animalSpecies variable, it was actually changing the value of the variable in the Animal class, but that's not what I want. How do I rewrite this code so that each subclass defines the values of variables it inherits from its superclass, without altering the superclass? And how would I define the value of variables for each instance of a class, so that I'm only changing the values of that instance, without altering the subclass?
Also, conventionally, what should be in my Main class? Only the addChild code which attaches MCs to the stage? Or should the values of variables be defined in Main? What am I missing? I recently read Foundation Game Design with Flash and didn't feel like the explanation was sufficient. I've tried scouring the web for OOP tutorials, but they're either too basic or too far over my head.where I should be defining values of variables for classes, subclasses, and instances?
I have created a movieclip (game_container_mc) in the main.as file and I want to add a child (enemy) to it from a different file (makeWave.as) how would I do this?
I have a movie clip on the stage. In the main .as file, I can easily access the instance i.e., myMovieClip_mc.x = 10; How do I do that from a class in my "classes" package? I am passing the stage instance into the constructor of the class, so I would think something like myStage.myMovieClip_mc.x = 10 would work, but it comlains that it is null.
I'd like to be able to access some objects which are on the stage before compile time (e.g. in my .fla file). I can do this fine from the document class using the names I've assigned to them, but I need to be able to do this from other classes (instantiated at runtime) too.
What is the best way to go about this? Can I use the stage variable (this isn't looking likely from what I've read so far) somehow? Or do I need to pass in references to these objects from my document class when I create the instances of the class that needs to access them?
I have several symbols in the library (using Flash CS5), and all of these instances have a custom base class set with a method (lets say x()). I have the symbols already positioned on the stage using the IDE, and I wanted to access them through as3 and run the method. I understand that you can instantiate a new object of an item in the library, but how would I access the object that are on the stage already?
var objectList:Array = new Array(); objectList.push(InstanceName1); objectList.push(InstanceName2); objectList.push(InstanceName3); objectList[0].x(); //trying to run the method on the existing Symbol
However, flash returns an error saying that the object does not have method x(). Also looking through the debugger, it doesn't seem like the item pushed is an instance of the base class, rather it says (prototype). This works of course if I were to create a new instance of each, but I would rather access the ones that are on the stage already.
I am having a problem referring to stage properties, where I am trying to e.g. obtain a third of the width of the stage. My code keeps throwing up the "Cannot access a property or method of a null object reference." I have found a few things from a search online, but haven't been able to work through it yet.
I should also say that I am working in flash and have made a movieclip with a movieclip inside (which is to be used as a roll-over menu for image thumbnails). The instance name of the 'parent' movieclip is "galleryPane"; and mc inside has an instance name "thumbnailsContainer" .Here is my code:
im trying to do a small card trick on flash cs4 using as3.i have 56 diff mcs on stage with instance names like c1,c2,c3,c4....c56.. and i need to acces nly 10 of at a time in a random order..i ran the random no. generating codes and got 10 diff random numbers (from 1 to 56) and stored it in an array as array[0],array[1] all this works fine.now how do i access the individual movie clips???[code]
I'm trying to create a base class for components by extending Group in Flex 4, but I can't seem to define the layout through MXML. Any time I try to move the definition to a subclass of my base component, I get the following error:
Error: Could not resolve <s:layout> to a component implementation.
Judging by that error, it seems that some magic from the framework's side goes into assigning it for a Group and thus the compiler fails when trying to assign it for any other classes. Does anyone know how this is supposed to work? how to allow me to define it in subclasses?
In my flash document, I have a movieclip drawn on the flash stage (put there myself, not dynamically). I want to use this as a holder for an external .swf. I am using a sub-class to run the loading script. I pass the stage reference to it as the variable "theStage". It has no trouble loading things directly to the stage, but it can't find my movieclip for some reason. I have exported the movieclip for actionscript in the symbol properties panel and have given it an instance name.I've tried theStage.myMovieClip.addChild(mySwf); and suchlike, but always get this error message in output:ReferenceError: Error #1069: Property myMovieClip not found on flash.display.Stage and there is no default value.at MethodInfo-206()Some more information: It works from the main class without any trouble.
I have a main document class with another class instanciated (mouse follower.as) within it. I want the mouse follower class to access a stage instance. How is this done?
After quite some time I finally decided to pick up Flash again, this time taking the OOP route. I'm a bit rusty though, so I'm stuck on something pretty basic.Here's my Layout of relevant objects and scripts:
As you might've guessed, what I'm trying to do is set the gunAmmo.text property from within my pistol class. I've tried using MovieClip(root).gunAmmo, stage, etc., but neither seems to be working. I sort of get why, but I don't know what the correct syntax is. (And yes, the TF's instance name has been set correctly.
From within a movie clip, I'm trying to update variables on my main timeline. I tried both _parent.variablename and _root.variablename, but neither worked.
I have a lot of actionscript drawing Sprites and adding them to the stage. I need to access them to animate them once they're added but I can't figure out how. Also, I read that a sprite has no timeline. If it doesn't have a timeline, that doesn't necessarily mean I can't animate does it? I mean, I should still be able to move it's position on screen or change it's color?
im still trying to get into the whole oop thing but I still have some things that i dont understand.I have a movieclip on stage that i want to access using an external class that lives in a different folder.Is there a way to access movieclips on stage from external classes or that i have to create a connection between the document class and then send the movieclip instance using a class method ?