ActionScript 3.0 :: Declaring Un-instantiated Class Makes Stage=null
May 12, 2011
In my document class I have this
[Code]....
It does not matter where I declare the var __w:Who in the constructor, as a class var or in another function entirely. The whole thing still operates normally but it's irritating not being able to set my stage.align=StageAlign.TOP_LEFT; in the constructor.... I am guessing it is something in my Who class because it does not happen if I declare any other vars the constructor in Who pretty basic:
I have a class called shapeC that only creates a rectangle and then addChild(rectangle);. That class is instantiated on the main timeline. Currently, the only way you can see that rectangle is to add the instantiated class to the stage via addChild(shapeC);. My question is, is there a way that the shapeC class can add the rectangle to the root stage without requireing the instantiated class to be added to the stage?
h1. I have a Class (let's call it "Button") that is linked to a library item (a movieclip) which I have on the stage
2. Now this Button class, when clicked will produce an alert in the form of another class (let's call it "Alert").
3. There are two critical things in the way I want this to work:
A) I want Alert to be a child of the main stage, not the Button class
B) I want Alert to take care of adding itself to the display list, not have Button add it.
So in a nutshell, I want to call Alert like this:new Alert("Hello, Kirupa Forums!");
The Alert class needs to draw the shape (check), add the text (check), add itself to the display list (how? if I try to access "stage" I get a null reference, though I don't know why), and destroy itself (I'll burn that bridge when I get to it).
I built my first simple class which just makes a movieclip move around randomly on the stage. I wanted to know if the "class" experts can take a look at my code and let me know how I can improve. I want it so that it is the most efficient code and can be applied to any movieclip that I want as easy as possible.
In my document class named Engine, the stage variable is for some reason null:
package game { import flash.display.MovieClip;
[Code]....
This was working fine up until now. I just recently added two dynamic text fields into a symbol, and all of a sudden the stage is null. I really don't see the connection.
I have question regarding removing instantiated objects. Let's say i have a main class in which i instantiate a custom video player (or whatever) class:
Code: ... var videoPlayer = new VideoPlayer(...); addChild(videoPlayer); ...
And inside VideoPlayer class i have of course dozens of objects (movie clips, sprites representing different parts of VideoPlayer) and dozens of event listeners attached to them. My question is, if i want to remove this VideoPlayer class from my main class is it enough to just do:
I have a initApp.as which instantiates a class which needs to access the "currentState" property and the States array as well. However we cannot get this to work as we cannot see how we can access this information.
Within initApp.as currentState is accessed via "this.currentState". This does not work in the class which is instatiated within initApp.as. The following error is thrown:
I'm wondering if anyone has experience with if there is a big difference in performance in ActionScript 3 between keeping a class with only public static functions, and utilizing those functions often (as in a frame event at 30fps), and in turning the class into a "normal" class of which I instead make an instance and call the functions via the instance instead.
I keep on getting "cannot access property of a null object" errors. With the debugger I pinpointed my issue at the line where I write stage.stageWidth.So somehow the stage is null. This is within my Document class which is linked with the .fla. The strange part is that I haven't had this problem until just recently.
TypeError: Error #1009: Cannot access a property or method of a null object reference. at QuizApp/createStatusBox() at QuizApp()
That's the error message I get when it tries to play. What I have is an swf that loads another when its done, the new swf is blank but has a document class to an AS file. It seems the problem lies when a function is not properly being added to the stage.
The function is added like this.. Code: package{ public class QuizApp extends Sprite{ public function QuizApp(){ createButtons(); private function createButtons() { if (this.stage == null) { trace("STAGE IS NULL!!!"); } var yPosition:Number; addEventListener(Event.ADDED_TO_STAGE, addedToStage); ...
I am making my way with AS3 in little steps and have hit a road block. This is what I have:
I have a document class called "Document Class" I have a custom class called "Game"
I have instantiated an object of "Game" class and I am able to trace a class method which return a simple "HELLO". within my Game class, I have a variable(type Array) called "questions" as instance variable.
I would like to add questions to "questions" array by using "Mutator" method, or count the current elements with the questions array and return the total number of questions. I am unable to add or access elements to the questions array.
My problem is that I listen for a mouse down event and when that occurs I add a new instance of a certain object to the stage, pushing it also to an array:
[Code]...
var minDist:Number = particleA.width / 3 + particleB.width / 3; When I trace the both elements, it says that the particleB is null, what is correct, because If I remove the snippet responsible for creating those, no error pops out. why it's null?
I am creating a Weapon class for a game and the weapons itself will be the sub classes. The sub classes will hard code some values (such as max ammo and the weapon name).
I trying to access this declared data in the base class constructor, at the moment it's not outputting the values. Is this possible?
My current workaround is creating a protected method in the base class to trace the information and calling that method in the sub class's constructor, this works fine but this doesn't seem like the most efficient technique?
I have been practicing and trying to understand how classes work and I was wondering if it is possible to create a class that can be reused by declearing the class only once in my fla file. Rightnow I create an instance of the class than I asign it to a MovieClip the problem is that I can only use it once and if I want to use it again I have to create another instance of the same class, something like this.
I'm facing problem regarding dynamic texts. My dynamic text is placed on the stage and instantiated. I'm setting the text value in AS by using textname.text = smthing... Initially it was showing the correct result on testing the movie clip.. But after few runs it started showing garbage values... When i traced the value, trace showed the correct result but not displayed properly on the dynamic text..I then deleted and recreated the texts.. After some trials od deleting and reinserting it started working fine.. But soon the problem creeped in.
I usually use if(object!=null) but it doesn't work well.
How can I verify if the class is instantiated. I want to get rid of the 'cannot access a property of a null object or reference'.
I mean, the 'var object:Object;' is just a reference to an Object class instance. When i initialize it with 'object = new Object()' it runs the code in the constructor, initializing it. How can I check if it has been initialized or not.
I've been struggling with this for almost a day now and I can't seem to find the problem. I'm making an instantiated FLV playback class in actionscript 2, but it just doesn't play the video
Here's the code, if I uncomment the camera parts and attach _cam instead of _stream it will show the camera feed, it just won't play my movie (and I get no errors whatsoever).
Im trying to get the value of the textWidth property in class Main from a text field created in an instantiated class Label. When I trace the value from within the Label class I have access to the values. I'm trying to use a get function to pass the value to the main class.[code]
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...
I have this class called Main. And inside this Main class I have a method that I'd like to call from a the main timeline.
So on the main timeline I have instatiate the Main class like this:
var mainClass:Class = flash.utils.getDefinitionByName("Main") as Class; var main:Sprite = new mainClass(this, mc1_mc, mc2_mc); addChild(main);
Then on the frame after that, I try to access a function inside that Class like this:
main.prepareGame();
But I get this error:
Scene 1, Layer 'Layer 2', Frame 3, Line 61061: Call to a possibly undefined method prepareGame through a reference with static type flash.display:Sprite.
I'm very confused. When I instantiate a class, I'm assuming that the object is reset to its default variable values. Not so. Consider this:
Code: class ClassTest extends MovieClip{ var arr:Array = new Array(); function ClassTest(){
[Code].....
...even if the two objects have different instance names! It's as if it is making my arr variable static by default, and not resetting it to a new array in the second instance. How do I get around this? Do I need to somehow have this code instantiate itself with something like "this = new ClassTest();"
What I'd like to do is add an event listener to a class instantiated by my document class that listens for different key presses. So far I can't use stage.addeventListener or I get the null object error so my question is:
a: how do i add an event listener to the stage from another class and b: is it even necessary to add it to the stage , can I listen from that class?
I have an XML file which has info about projects for my portfolio, there are 7 of them at the moment. I'm trying to have a preloader animation show up in place of every portfolio image before it's shown on stage. The problem is that there are 14 of those preloaders being instantiated rather than 7!! How could that be possible? Check out my code:
I have a mc in my library called SimpleButton and in the class path for that mc I have the path to my class: com.company.ui.buttons.SimpleButton.
But when I try to instantiate the symbol using the following code, it does not appear on the stage.
Code: var simpleButton = new SimpleButton(); addChild(simpleButton);
The code works fine when the mc class path is just SimpleButton, the symbol is added to the stage. However when I try to use my own class, the base class disappears from the linkage box in the mc properties dialog and the symbol does not appear on the stage.
I have an object which is assigned a number of properties:
var project_array:Array = []; var slideObject:Object = { project_title : myXML.projects.project[i].title.toUpperCase(),
[Code].....
but I'm not quite sure where to place this. If I place it outside of the object constructor, I get "term is undefined", I guess because it doesn't know what project_clips_array is - but if I declare project_clips_array in the constructor, it appears to need to be defined, i.e. I can't create a blank property. But I can't place it in the constructor either, because it doesn't seem to allow me to run a function within an object constructor. What is the proper syntax or arrangement of code for executing this function to get the array within the object?
I have begun on a list: My reference is null!Stage is null! Convert this code from as 2 to as 3 for me! Crossdomain policies are in the way of my cool idea Dynamic property names I need to use stuff on the parent! I don't want my children to scale when I scale the parent! Classes vs instances. Mod note: I do not want this topic pinned, we will use a fresh topic once we have agreed to the content.
This will sound odd, but I would like to find a way for Flash to declare one instance of each class inside a package. That is to say, if a package com.rezmason.stuff contains five classes, some code makes an instance of each class in an array; but if, later on, I take out two classes, that same code only makes an instance for each of the three remaining classes within the package. Later still, if I add seven classes, the same code makes an instance fore each of those ten classes.
I doubt that this is possible, but I figured that if anyone would know, it would be you folks. Code with this kind of flexibility would greatly simplify managing the code in a project that frequently has classes being added, removed and swapped. If anyone has an idea, I'd like to hear it.
The header says it all. I am trying to import a couple of classes without attaching a document class to the fla file. Is this possible? I have the class path set as appropriate (I think) in the publish settings since my fla is located inside a swf folder and my classes folder is located outside the swf folder. Its how my project is organized.