ActionScript 3.0 :: Children Of Main Class Not Showing Up
Jul 23, 2011
Sprites, Shapes and MovieClips added as children of the main class just aren't visible. There's no error message at compiletime, no error message at runtime, everything seems to work perfectly except that the child (and its children, whatever they happen to be) just doesn't manifest on the screen. It might be worth noting that not all DisplayObjects have this problem. Bitmaps and TextFields, for instance, both show up perfectly.
If it matters, I'm running Flash Player 10 on 32-bit Windows Vista, compiling using Flex 4 with a command line instruction of the following form:
"mxmlc.exe" -as3 -static-link-runtime-shared-libraries=true -target-player "10" whatever.as
I've already tried basically all the obvious tests I can think of to narrow down the problem. Aside from the object being invisible and apparently not responding to mouse clicks, everything works exactly as expected.
I'm getting a list of movieclips with attached scripts to display, but when I try to put them on the sceen nothing shows up.I can trace the elements in the list and it will tell me there are elements there.I can trace getChildAt(numChildren -1) and it will tell me there is something there but nothing is visible.If I generate the list in the constructor of the class that handles the displaying it does show them, but when I try to load them when they are actually needed they don't show up.Here's a simplification of the code(its a small part of a larger project and I can't put all of it up somewhere public)This code does what it should do(unfortunately that is not what I need done)
The traces all show up so I know its running the method, the traces tell me it adds stuff the the screen, but what I see on the screen remains completely stagnant, as if nothing is being added.
I'm slightly new to Flash CS3 + AS3 combo, so its more of a lack of practice question. My question stems from the problem described here http:[url].... . Note, its not the same problem, its a new one.The Problem ,So I have multiple library assets (which are on teh stage) and I want to assign similar functionality to all of them.
Attempt 1: So I create the n assets, create a custom class in AS3, link them to Flash CS3 and obviously enough it gives me the error that multiple assets can't be linked to the same class.Obvious enough to understand (well not completely, because from a programmers background it doesn't make sense).
Attempt 2: Same as attempt 1, but instead of linking all the assets to the same class I make the base class the same class, and let the derived class be dynamically created by Flash on compile time.So the linking works, but the problem is, in my base class I have a method which does something (say an tween) on a child of the library asset. So if the assets on the stage/library are called asset1, asset2, asset3 (same name for asset name, class name, id name), each of them has a sub-movieclip called ... say 'foo'. now if I manually wrote a class for each asset, I could do 'this.foo' to play with the sub-movieclip. However since this functionality is in the parent class, I'm unable to do it.
P.S. If you're form a programming/OOP background, its basically a abstract class problem. My Base class knows how to doSomething(), but it needs aSomething, which is defined in the Derived classes. However I found out that AS3 classes don't support virtual(C++ )/abstract (Java) in the true sense of the word (unless I missed some obvious documentation).
how to get a Class file up and going in Flash and that works fine but say I want to import other classes. I try "import testCass" above in my import statements section of my as file and that doesn't work. What do I have to do to get that to work?
Is there a surestarter preloader in AS3 with CS4? Meaning here, showing a progress bar or percentage value before loading the main swf, right away at the start of the loading.I tried 3 different versions:
1- I used the code from a video (and accompanying files), and simply changed the content.swf to my own swf file (rename my swf content.swf), so that the original code would load my swf instead of the original content.swf. (original content.swf was too small to see anything before loading, because my loading speed is too fast).Here is the code from the original preloader (loads a small swf which then loads the main swf file):
var l:Loader = new Loader();l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);l.load(new URLRequest("content.swf")); function loop(e:ProgressEvent):void{ var perc:Number = e.bytesLoaded / e.bytesTotal; percent.text = Math.ceil(perc*100).toString();}[code].....
I am trying to load an external swf slideshow that uses xml to load images, but the images wont show...if I look at the stand alone swf file they show up fine...Is it a matter of xml image path? why I cant show the images when the slideshow swf is loaded into my main swf?
I'm making a OSX-finder-type file browser in CS4.The Structure for the folder and files is being generated by a PHP in a XML, heres an example:(sorry the xml is not sorted, but the command i'm using in php doesn't sort it)
I'm a begginer flash game developer-ish individual working on my first project - An economic game with RPG elements, I'm mixing AS 3.0 with Flash CS5 (for the graphics, buttons, tweens and the simple stuff in general since it's easier for me atm than scripting it). The trouble started when I had to script in variables. I've sorted out a couple of issues but a few still remain:
1. I need to limit three of my main skills to 0-100. Only managed to stumble across tutorials for AS2,
2. Each character will have 3 main skills, and then the 18 secondary skills will be calculated from those 3 values. This works fine, when I modify existing variables directly in the code. The thing is that I created those buttons that add or subtract from a certain skill value, but when I press them the var changes but all of the 18 skills remain unchanged (as if they do not refresh themselves - i was thinking about an eventListener waiting for a change in skill value but if I would have to do one for every one of the 18 skills in conjunction with the 6 buttons to change levels - so 144 functions - im thinking maybe an array...but I'm such an actionscript newb that I can hardly translate the tutorials into my ideas.
3. Also wondering how to create a pool of unused skill points so when I add points I can't max it out right off the bat but rather take it from that value instead and once it's 0 you can't add points anymore.
4. Last but not least, I'm having trouble creating global values. My main menu is in scene1 and when I press Newgame it goes to scene2, the problem starts when i go back to main menu errors keep showing up (since scene 1 has no information about statistics but a function probably keeps asking )which means that the program can't get access to an attribute or a method of reference for the null object at MainMenu_fla (don't be fooled by the file name, I have everything in 1 fla file)Of course an error pops up for every skill, main or secondary.
just thinking out the setup of a sidescroll/platformer..i want the player not to fall through the floor or go through walls i know how to hittest with a single object, but what i have is various objects that extend the class wall. if I hittest with wall will that also apply to the serrated_floor and portcullis classes that extend wall?
I have two classes. The Main class calls a function, which is defined in a Second class.I'm getting the following error:Error 1120: Access of undefined property myFunctionBasically, I am creating buttons in the Main class that will add a corresponding Child to an Object in the Second class (if you click one button, child x1 will be added, if you click another button, child x2 will be added, and so forth).Here's the relevant code for the Main.as file:
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 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]...
From my experience, if i don't destroy for example event listeners from my VideoPlayer class and just remove VideoPlayer class the way described they still get fired with null exception messages etc. This is something that's bugging me for a while so i would really like to know what's best thing to do here?
I have a main class which listens for an event dispatched from another class say class A. Also there are other classes say class B, class C etc.There is a controller class.Classes B, C dispatches events that gets listened by the controller and works well.But the events dispatched by the Class A doesn't get listened by the main class.What might be the problem. Detailed Explanation of the problem.There is a main mxml file.
Class files are in: ProcessInput.as DBController.as ShortMemDB.as ....etc
The main mxml file gets the input from a textArea. Sends the input to the capturedInput (input:String) function using set method which is in the ProcessInput Class.Now I need to dispatch events NORMAL, COMMAND depending on the input obtained after the processing, where I'm having problems. The reason is that if the event NORMAL is dispatched a particular function inside the DBController is to be called. If COMMAND event is dispatched then I need to call another function. This idea doesn't work since the events doesn't get listened.But the events dispatched by the CSDB class when listened by the DBController works well.
I'm trying to load a RSL library into a flash animation developed with Flash CS5 IDE, that extends a custom class and implements an interface. I have reduced the problem to the simplest setup and find that I can have my main class extend another class or implement an interface, but not do both at the same time if I want to load an RSL.I have a very simple class to extend:
import flash.display.Sprite; public class MySprite extends Sprite {[ code]...........
but if I want both I get the VerifyError: Error #1014 with MySprite not found and ReferenceError: Error #1065.
I'm not sure that I'm on the right track here. I've got what is essentially a 'gateway' movieclip and depending on the CLICK a corresponding movieclip (form) is loaded -- these all being in their own AS file. There are multiple corresponding pages that will all load/close in their own fashion but the 'gateway' will reload in it's own function-- consequently, I have this function on the main_AS. Can I trigger this function from the sub class or do I need to move the 'reload' function to a 'reload' class.
I am refactoring a hugh action script solution in Flash builder (beta 2) using the flex 4 sdk.The project does NOT use the mx framework.What i want to have is:
A big 'MAIN' project several small 'MODULE' projects. each 'MODULE' class refrences the 'MAIN' project as an External reference (doesnt compile into swf) - this is done by setting link type = external in the 'MODULE' project properties -> library path.'MAIN' loads a 'MODULE' project on runtime using the 'loader' class.
the problem:I recieve an error from the MODULE project: VerifyError: Error #1014: Class [some class in MAIN] could not be found.
For this example, I will use 2 classes, Entity and CSpawner. CSpawner is a children of Entity.I want to perform the following condition:if((new CSpawner()) is Entity)It works just like intended.But I want to do this test, without creating a new CSpawner object, something like this:if(CSpawner is Entity)But it doesn't work, because CSpawner is a Class.How do I perform that kind of conditional without creating a new CSpawner object?
I have a class, called fCont (I know, I should use capital letters for class names... oh well), and I need to remove all instances of it from my MovieClip.I'm making a Facebook browser for a uni assignment. When you go to the Friends page, it loads 15 friends, and that's fine. The code below is called on the "Next Page" button press.
Code: function nextFriendsPage(e:Event){ var friendFace:Object = stage.getChildAt(0);
I have a document class called Main.as In the class constructor I have the following listener:
enter code here var listeningFORModeChangeToStudent:Sprite = new Sprite; listeningFORModeChangeToStudent.addEventListener(TellAllModeChangeToStudent.STUDENT,exp); addChild(listeningFORModeChangeToStudent);
[code]....
In a third class I make a call to the despatcher in the previous class:
enter code here var ThisTellAllModeChangeToStudent:TellAllModeChangeToStudent = new TellAllModeChangeToStudent; ThisTellAllModeChangeToStudent.tellAllModeChangeToStudent();
I have trace statements in eveything and from this I know the despatcher in TellAllModeChangeToStudent is being called.The problem is that the listener in the main.as is not calling the function exp.I cant see why and I dont know how to check if the listener is actually seeing the dispatch event?
Iīm making a game and now I wonder if itīs good practice to have a class named Main for my game. I was thinking about to have a Preloader, Console and Game classes. Now I donīt know anymore. Maybe itīs better to have a Main class that loads including a preloader, which loads Console wich loads Game.
Thatīs the better way to making a game application? Iīm talking about best practices.
why if yes there has to be a Main class that extends Sprite?
i want to add to stage a movieclip in another class not the .as file as the same name of .fla file how can i get this.When i run same code in main.as i get the result but in another class it runs but no result.
How do I listen from the main class to a sub class for a variable change?
package { import flash.events.* public class DataBase extends MovieClip {
[Code].....
This is what I have so far for the sub class but I can't seem to figure out how to listen to this variable change from Main() or even if I am dispatching the event properly.
I have a problem with classes. What I am trying to do is this: I create a main class and then i import another class into it.then I create an instance of the new class and add it to the stage.the problem occurs when im trying to use the new classes methods.
import classes.NewClass; var test:NewClass = new NewClass(); addChild(test);[code].....
My first experience is build an aquarium with a lot of fish swimming, and they can be clicked. When one of them is clicked we should receive a trace message saying ("Iïŋ―m a Fish!"). To do this, I thought that the best way will be:
1- create a document class, named Main.as
2- create a base class, named Clicked.as
2- create a movie clip with a fish.
3- export the movieclip to actionscript. In the mc properties set Class as "fish" and Base Class as "Clicked".
i have a game that i want to put load screen on, which i created a separate class for. first the main class is initialized and in the constructor function, it does an addChild(loadScreen) which places an instance of the loadScreen MC on the stage. within the loadScreen is a "Play Button" that when a user presses this button i want it to continue startGame in the Main class. the way i tried it was Main.startGame from the loadScreen class, but that obviously does not work. is it possible to call a function from a different class.i have three files: