Actionscript 3.0 :: Make Non-document-class Classes Aware Of Stage Comp?
Dec 2, 2010
I am working on text adventure game which will have at least a few components (a text area for narrative and text input for user input) on the stage at all times. Therefore, I have created those components statically through Flash's WYSIWYG design environment. I gave them instance names "myTA" and "myTI" respectively. I was able to get my main class (the document class for the stage) to interact with them (dynamically adding text one character at a time like a typewriter at runtime), but other classes in the same package don't seem able to recognize the stage components. Below is the relevant code:
Case A, in which everything happens within the Main class:
Code: Select allpackage {
public class Main extends MovieClip {
I am working on a text adventure game which will have at least a few components (a text area for narrative and text input for user input) on the stage at all times. Therefore, I have created those components statically through Flash's WYSIWYG design environment. I gave them instance names "myTA" and "myTI" respectively. I was able to get my main class (the document class for the stage) to interact with them (dynamically adding text one character at a time like a typewriter at runtime), but other classes in the same package don't seem able to recognize the stage components. Below is the relevant [code]...
I have 2 as3 files, which are the classes used . I have to use it with the main flash movie.. How will I include those as3 files without using document class..
For the example, there's a single FLA with a document class "main.as." In the public class main.as package, there is a public variable: "var example:String='example';." Inside of the FLA, there is one movie clip in the library and it is assigned a custom base class "sub.as." The movie clip is then placed on the first frame of the stage so its constructor is run at runtime and reads the value of example.
What is the proper way to get the value of "example" in the root document class? Using "root.example" in the sub.as class to target the document class returns an error and when I trace "root", I get "null." Main.example naturally throws an error because that's looking at the actual class and not the movie / stage its attached to.The round-about way I've done it before is to dynamically add the object in the library and pass in the root path when I create a new instance of it (example: submc:sub = new sub(this); ).Is there anyway to get back to the document class with a built-in method like root, etc?
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.
I am trying to load external classes into a document class and initialize the page by loading one of them (which loads xml and videos) I feel like I should be able to do this but have not found documentation on this. Below is the code i am using...
I am just making the move to AS3, and in particular - moving my code to classes and packages. And right now, the penny hasnt dropped. I understand that packages group a group of related classes, but my brain just hasnt seemed to grasp a few concepts.
As a start, i thought i would port a dropdown i built in as2, to as3. The problem i am having specifically is making instances of the dropdown aware of each other. For example, I have a Dropdown Class that adds my dropdown to the stage. This class is responsible for building the dropdown, and adding the items to it.
But lets say i make another instance of this class. This brings up several issues that i dont fully understand. For example: - when one dropdown instance is open, it is the current_selected. When I open another dropdown, i want to send an event to the other instances that says "hey, if you are open you need to close" - a reset all function. Which would work similar to above. It would send an event all all instances of the dropdown class and trigger their internal "reset()" method
In as2, i would simply create some variables to keep track of these things. As far as i am aware, you can't add package level variables that instances can all see?
So, Do i need to add a customised version of the event dispatcher? and if so, how do i tie all these instances into a group of sorts.
Combo boxes in Flex are really awkward to use if you have objects in them addressed by properties, in my experience. In Flex 3.5 we had a working extension to the combo box that would populate a selectedValue property (and allow changing the selectedIndex by same).
Here's a quick example of what using one of these looks like:
<c:ValueComboBox valueField="country_code"> <mx:Script> <![CDATA[ public function get selectedCountry(): String {
[code]...
However, this has stopped working in Flex 4. What's happening is that our existing component drove its changes by overriding the set selectedIndex() function, which is no longer called when the combo box's selected index changes (wtf?).Is there a working value-aware combobox implementation for Flex 4? [URL]
I was working on something or other today and a question came to me. Would it be possible to make a swf know how big it is, weather embedded into an HTML page, or running in flash player.
So pretty much, I want it to, if it's playing in the stand-alone flash payer, if you stretch out the window vertically, it would know
The first thing I thought of was keeping track of _root._xscale or _root._width, but they didn't work.
How to access a display object on the stage in a class which is not a document class?
I am looking for a solution that doesn't involve passing the stage as a parameter to the class.
One solution i always come across is using "TopLevel.as". Is it a good method because as far as I have heard using global variables is not recommended because it might cause some problems while working on big projects.
I'm being really dumb today and I know this should be simple.....How do i access the stage from a class which isn't the Document Class? For instance, I want to create a tween which takes in the parameters of the stage's width? So I've written.....
ActionScript Code: var myTweenX:Tween = new Tween(this, "x", Regular.easeOut, this.x, stage.stageWidth, 60, true);
How do i access the stage from a class which isn't the Document Class? For instance, I want to create a tween which takes in the parameters of the stage's width?[code]
I have built a basic preloader that runs in my document class. I'm having trouble with it.I'm guessing its due to what a class can and can not access from the stage?theres 2 problems. the first is that I cant change the keyframe the stage is on from the class. the second is im getting an error 1009 if I comment that out.
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 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?
I have a Document Class called Main.as. I tested that it works using a simple trace statement and that outputs fine. I instantiated a Button control and tried to add it to the stage but I keep getting the error thrown below. The code for Main.as is simple and at the end of this thread. I tried all different ways to add the Button to the stage but couldn't figure it out.[code]...
I am attempting to understand the document class. I have the following code in my current document class in an attempt to set up my stage.I did regarding classes and linking them directly to Library assets, but just as I told him-- I am throwing my pride to the side to try and understand and breaking down to ask the dumb questions.here's the code:
Why would this throw up the error: "1046: Type was not found or was not a compile-time constant: Event." referencing the line in the code: "function setStage ( e:Event = null )"?
Just tried using cs5 on my new macbook and I have a tlf text object on the stage with an instance name of mText. I tried to access (mText.text = "test") it like this and got a null object reference. I tried to trace the stage from my document class and it was null when the tlftextbox was on the stage but i could trace stage correctly when I deleted the textbox. [code]...
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.
I have drawn buttons on my stage. They all set to export for as3. I then made a class for buttons
package{ import flash.display.MovieClip; import flash.events.MouseEvent; import flash.system.fscommand; public class Buttons extends MovieClip{ public function Buttons(){ [Code] .....
And then I put in my document class ; import Buttons; nothing happens and no errors...
I m trying to access stage.width property but sometimes it trace 650 and 720 but i see my flash file dimension is 500x400, I need to align objects on stage..
I have a "box_mc" movieclip on the root of my stage and I need to select it from within my Document Class. I thought Stage.getChildByName("box_mc") would work, but it just returns null.
I'm trying to manipulate (in this particular case add eventListeners) objects (in this case some MovieClips) on the stage from a class that isn't the document class.
1120: Access of undefined property trans.
Now I know that it's probably a scope thing and I probably can't access stage objects directly from a non document class (as I'm doing in the code below) but I can't figure out how to access them properly.
Anyway, here's the deal:
I've got 3 dynamic text fields (called "NL", "FR" and "EN") on my stage in a movieclip called "trans". I'm trying to add eventlisteners in a second class to make them do something when clicked on.
I can access the targetObj instance inside the document class, but when I try to access it in another .as class,get this error: Access of undefined property targetObj.
I am trying to add a keyboard event listener to the stage, to detect when a user clicks the left or right arrow keys. But this listener is called from inside a class file which is imported into the document class, therefore I think it doesn't know what "stage" refers to. How do I solve this?
How do you access the stage from a function in a document class file? I tried a fairly simple: ActionScript Code: var main:MovieClip = new MovieClip(); addChild(main) var _stage:Stage = main.stage; trace(_stage); The result was null.