ActionScript 3.0 :: Why Can't Get An Object Onto The Display List
Oct 4, 2010
i have this really basic class and all it does is create a button...i have another class called main where i want to put the button on the stage...problem is it all compiles but can't get the button to display..
public class Main extends Sprite
{
public function Main()
{
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.
Is there a way to make a display object always be at the top of the display list?For example, I know you can set the childIndex, i.e:setChildIndex(myDisplayObject, numChildren-1);But is there a way that an object has sensed that something else has been added to the display list and restack themselves accordingly?
When a movie clip is removed from the stage it's properties are still accessible including visible == true. How do I test to see if it is off the time line?
I have an application that uses a main class to control other MovieClips, adding and removing them as needed, most of them are separate screens or sub menus.
When I leave the main menu and come back to it later from another screen, certain animations and roll over buttons still play, which I don't want, I basically need the main menu screen to reset every time it is seen.
I read up on this and found out that removing the child doesn't necessarily remove it from the memory.
I tried setting the mainmenu to null before moving onto a different screen but this threw up an error, stating that the parameter child must be none null.
how to completely kill my mainmenu when it is not needed.
public function confSubMenuOneScreen():void { subMenuOneScreen = new SubMenuOne(); mainmenu = null;
[Code].....
This is the example of code that removes the menu and adds another screen, with the mainmenu = null code that throws up the error.
Any command to check whether an object is currently present in the Display List? I have a TextField called _startHereText. I have some logic where I need to sometimes use RemoveChild to take this object out of the Display List, but I first need to determine if it is presently there.
For some reason below is not working. It is probably very obvious but I am not seeing it. As soon as I comment out the container mc variable and just add Child to root timeline I see everything which means me container is not being added to the stage correctly.
stop(); import flash.display.MovieClip; var i:int = 0; var a:Number = 10; var ageString:String; var ageText:Array = new Array(); [Code] .....
I'm trying to dispatch a custom event from a custom class (which implements IEventDispatcher) to another custom class (also implements IEventDispatcher) but I cannot trigger the corresponding event handlers.The classes are instantiated at different parts of the application: one on the main canvas and the other on the back-end (data side) of the app. Neither of these is part of the display list hierarchy and I need them to communicate through events.I've looked through adobe docs, the web and Mook's Essential AS3, but have come up with nothing...
I need to access a non-display list top-level (Parent? Ancestor? What's the correct term?) object from a display list object, and I don't know how.
In my code, ResultX is an instance of my custom class Result. Card is a sprite, a visual representation of the ResultX object, defined inside the Result class and attached (or removed) to the stage via a separate function inside the result class as needed.
I want to refer to the correct Result object when the user clicks on the corresponding card to call a function there. In accessing the sprite manually, ResultX.card works fine, but I don't know how to go upwards trough the path - card.parent (or actually target.parent, since it's done via event) just returns Main, of course.
I'm trying to create an image class that I can reuse throughout a website I'm making.
When you click an image i want it to expand to fill the screen. When this happens obviously it will have to be at the top of the display list so that none of the other objects on the website are above it. The problem is that I want to be able to use this class throughout the website, even within containers that are beneath other objects so it seems impossible to simply bring it to the front easily?
Edit: Maybe when you click an image it would create a replica on top of the current image but above all the other objects on the main stage - then expand that one instead of the original image in the container? Theres got to be a better method though... I can't imagine this working too smoothly.
I have an object that is instantiated, then placed into a property within a singleton (single instance) object. When a button is clicked an event is dispatched carrying a payload that references the display object that is held within the Singleton. When the event is heard, my view object adds the object to the display list e.g. addChild().The Item shows. Now If I hit another button an event is dispatched, and a new item is added to the display list via the method above and is seen. The 1st object is removed from the display list Here is my problem. When I click the button to load the 1st Object the above process is executed again but the object does not show.
I can run trace statements from the object that is supposed to be visible and they run fine. I even do a check to see if the visible property is set to true, and it is, but not object is on my screen. Code for this process.
//custom event carries the name of the page aka display object. this is a string dispatchEvent(new MenuEvent(MenuEvent.CHANGE_VIEW_STATE, event.payload)); //When the event is heard, the following condinial is run
i have made a list control. i want to display the name of the objects in it in a text control box
the code i am using here is
public function add(event:MouseEvent):void { var str:String; str = mylistcontrol.dataProvider.getItemAt(0).toString();
[Code]....
The problem with this code is i am using index value of 0. however i want to display the name of object on which i have clicked or which is highlighted.
I've got these Flash students I TA for a course, and they are doing drag and drop exercises and have come across some weirdness.(They are using a frames based design to represent different pages of activity, with a menu to goto each frame under user control.)At author time:
1. they set up drag and drop as3 for an object on a particular frame.
2. when startDrag is initiated, they moved the dragged object to the top of the display list, so it appears to float above all other objects as the user drags.
at runtime,a problem appears:the object seems to have been pulled out of the frame, and now floats in a display list above any frame that may be advanced to.What's going on here? It's like the object got pulled off the authortime stage and now is disconnected. Going back to the drag and drop frame shows the original object again, reinstanced, along with this copy that got pulled out.
how do we remove object( sprite which has an external swf as it's child ) from display and more importantly from memory yet we still can use the same variable to add another object (yes another sprite like the one we removed yet has different content).., "
i did tried the removeChildAt thing it did remove all the child from the display list but i still can hear sound from video running.
here is small scale code of what i'm doing (sorry that i can only give you chunk code of loading and adding)
// var SWFList:XMLList; //used to hold a list of all external swf source,atribute and etc// var totalSWF:int; //hold the total number of external swf there is to be loaded // var swfLoader:Loader; //instance of loader class used to load the external swf
When I'm removing an object from the display list (via removeChild), I'm performing a splice on all of the arrays that the object has:
[Code]....
My thinking was that this frees up some memory similar to disposing a bitmapdata. Does this even do anything? Or, will arrays be cleared and the memory usage restored when the object is removeChilded?
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;
I have a list containing display objects from throughout the application (insertion order). I want to process the list either top-down (parent, child) or bottom up (child, parent). The only requirement is that either a parent is processed before any child or vice versa a child before its parent. What is a good approach? This question is not about sorting a list. It's about retrieving the depth of a particular display object.
Example Display list: A (root) B1 C1 C2 D1 B2 ......
My list: list = [E1, F4, A, B2, B1, C3, ..., N9, N8]
Bottom-up: N9, N8, F4, E1, C3, B2, B1, A
Top-down: A, B2, B1, C3, E1, F4, N9, N8 Does not matter if N9 before N8 or N8 before N9. Important is that any N is before M (first run) or any M before its children N* (second run).
How do I identify all the display objects in the display list in ActionScript, bellow the one that I have clicked? All the other objects are shadowed by the first one. What if other objects have visible parameter as hidden?
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?
I'm having alot of trouble tracking down the name of an object on the display list so i can removeChild Is there a way to trace every object on the display list so i can get its name and remove it? my stage is changing dynmically and i can't jut trace each object through a whole whack of code.
I have a list box in my flash file that I would like to display a string from an xml file that has been run though html entities in php. So for instance I need the string.
Code: Hey "Leonardo£$£$()*%£% '"' [1999] to display as Code: Hey "Leonardo;$;$()*%$% '"' [1999]
I can get this to happen in my dynamic text boxes by using .htmlText to display but I have no idea how I would do this in the list box?
All it returns is 0 and [object MainTimeline]. Is there something wrong with Flash, or did I do my coding wrong? The objects I put on the stage should be on the Display List, right?
How do I removeChild only if it's in the Display List?One button on my stage will addChild(radioButton) and another removes it. If the remove button is clicked first, then it obviously tries to remove something that has not yet been added and an error is returned. I've tried using the DisplayObjectContainer class with the contains() method to no avail.
var t:TextField = new TextField(); t.text = "hello in main"; addChild(t);
However, when I create an instance of a class, and I have that same code in the constructor of that class, the text doesn't show up. I am creating the text field variable at the class level, not the contstructor level, so I think the variable should still hang around.
Do I have to get an instance of the stage, or something?