ActionScript 3.0 :: Remove All Children From Container
Oct 2, 2008
Well I'm starting to really enjoy AS3, my next question then is this: In AS2 I'd often remove all movieclips with something like this:
PHP Code:
for(var i: String in container) {
container[i].removeMovieClip();
}
Is there something similar in AS3 that I can do without resorting to maintaining an array of references to each child of my container?
How do I remove all children from a display object container? I want to make sure that when I re-enter a particular frame that there are no imageLoaders loaded into my photoGallery.
I'm currently working on a custom component which extends Canvas (let's call it SuperCanvas) ; it's basically a container that let you zoom & pan its contents. It would be too long to explain why, but I can't use scrollRect, so I was forced to declare a Canvas object (called innerCanvas)... inside my SuperCanvas (I know, not very nice =/) I would like to know if there's a proper way to "redirect" the creation of my component's children in this canvas.
Just wondered if I remove a parent movieclip and then set it to null, will it remove all the child movieclips within it from the Display list and also from memory, or do I need to iterate through the parent movieclip removing all its children before removing the parent?
I am having trouble determining where to add my removeChild() statement to clear multiple movieClips from a container mc. I know I need to determine if the container movieclip contains anything. I don't know how or what I should put and where to put it. If I can determine if my container mc has movies in it, I am assuming I can just declare it again (i.e
PHP Code: panel= new MovieClip(); )to clear it. Am I correct?
I'm using as container for my LinkButtons. I would like to know 1) How can I remove the space between the items in my Tile container. 2) How can I set dynamic width for my items (at the moment they all have the same width regardless the width of the included component) 3) How can I avoid to display scrollbars if the items are not included in the container
If I have a container, and I set clipContent to true, how do I get the total height of the children inside it? Is there a method for doing this without itinerating through every child and summing the heights?
At one point in my script I'd like to check a MC for the number of children and limit this number to 3. For that I use this script:
Code: if (container.numChildren > 3){ for (i = container.numChildren; i > 3; i--){ container.removeChild(container.getChildAt(i-1)); popError('Horizontal nur 3 Elemente!'); } }
This somehow works fine if there are 4 or 5 children in the MovieClip, but as soon as there are 6 or more, it throws an Argument Error #2025 and does not remove anything. BTW it does not make difference if I use container.removeChildAt(i-1);
I'm using an accordion container that has it's creation policy set to auto. One of the accordion's children is a spark border container that has a data grid within it. Currently, I'm using the data grid's creationComplete property to call a function; similarly, I'm using the dragComplete property to call another function.
How can I add listeners for events (creationComplete & dragComplete) via actionscript? The obvious problem is that the accordion does not create all its children on creation (nor do I want it to), so I can't simply use something like: datagrid.addEventListener(...)
I have a VBox inside a Canvas. The 'red bars' are custom components based on 'Canvas'. All red bars are of equal height. I have 20 red bars inside the VBox. The scrollbars visible in the screenshot are the Canvas's scrollbars. The scrollbars of the VBox are disabled using verticalScrollPolicy = off.
Without scrolling, only 16 red bars (and a part of the 17th bar) are visible. However, when I scroll down the Canvas I expect to see the remaining red bars - but the bars that are not visible when the application starts don't get 'drawn'. What am I doing wrong? I want the user to be able to see the 17th - 20th bars when the Canvas is scrolled down.
is it possible to retrieve all children of a certain type from a parent in actionscript 3? i only see getChildAt,getChildByName, is there a getchild of a certain type like get all childs of object type:Food?
What's the best way to scale a container mc but not scale the children inside it? Basically I have a box mc with a background colour, with a logo added using addChild, if the user changes the browser size the box scales to the height of the window but it's also scaling the logo, I just want to change the height of the container box really.
I'm trying to avoid the scroll bar appearance on an UIComponent. Is there any way to obtain the computed width/height that my container component should have to have all children visible? I don't want to compute it myself. I would like to know if there is any variable computed by the component when it decides if it should draw the scroll bar or not.
Is there an easy way to make a parent container (eg Group) resize when it's children resize?
Below is a little example app. When I put the 200x200 'food' in the 'stomach' the stomach & it's containing 100x100 'body' should resize to contain the food.
If I've got a Container with a child component that is off either the top or the left hand side:
Is there any way to get scroll bars to show up? ie, so I can scroll up and get the button back in view, the same way I could if the button was off the bottom right side?
I have code like the following: <s:VGroup gap="10" id="group" height="100%"> <s:Label text="This is page 2" /> <s:Button content="Resize Canvas" click="resize(event);"/> <mx:Canvas id="photoCanvas" color="#567898" backgroundColor="#125567"> </mx:Canvas> </s:VGroup>
I don't understand why the following does not work: Pushing the Button resizes the photoCanvas's height (gets taller or smaller). Since the photoCanvas control is a child element of the VGroup shouldn't the container update itself to the new height? The Vgroup has ALWAYS the same height, no matter what the (total) height of the children is! I would like the VGroup to adjust itself and get a height value equal to the sum of its children heights. Is this not possible??
Flex's new States re-parents visual items that are marked with includeIn/excludeFrom. If I have a Group (MainGroup) with 5 children/elements that are state controlled, is there still a way to get a reference to MainGroup's children? mainGroup.numChildren and mainGroup.numElements don't work since the children are re-parented. At best, they show 1.
I have a container object that i add children to. I want to change the height & width of the container without the children scaling. In this case I draw a rectangle in flash which I'll use as the container object then export for AS.
...I would like to override whatever function that adds the children to the parent Group and add them to the child viewstack instead but I can't seem to find where the adding occurs. Breakpoints in addChild and addElement shows that they are not called during the add.
adding all the bricks of another movie clip into an array in my controlling mc (GameScreen). Except, when I try to remove them from the display list by accessing them from their array, I get
Quote:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller at flash.display:isplayObjectContainer/removeChild()...and so on
I'm guessing it's something to do with adding another movie clip's children into an array in a movieclip that isn't the stored clips' direct parent, but it's parent's parent.
Code: private function checkBrickHit():void{ for(var i:int=0;i<brickArray.length;i++){
I have a menu that is a type of wave, thus I'm using Flash, not HTML. My issue is that I have a bevel on that wave, but that bevel extends onto the text that is a child of the MC that has the bevel. Is there any way that I can remove the bevel from the text (Or technically shapes since they were imported from IL) without removing it from the entire element?
And yes, I've tried this.filters=[];
Also, I can't keep everything one shape in the MC, because I have hover attributes.
trying to remove instances of child/children. I have a function (btFnc) that creates a child (bT) and then the function is called several times to add instances to the stage - btFnc(264,3.6); btFnc(304,4.6); btFnc(344,5.6); btFnc(384,6.6); btFnc(424,7.6);Yet i cannot for the life of me remove all of the children, only 1.
Code: public class screen18 extends MovieClip { private var scrnXMLLoader:XMLLoader;//XML Loading class private var screenTxt:Array;
i have an ary contain a numbers of information as below
var ary:Array = new Array();var temp:Array;
var box_mc:Box; // this is a movieclip which contain dynamic text box inside.
// assume inside the array have 9 itemName
on the stage i got an empty empty movieclip and i add child from the array on it..
[Code]...
Problem:I could delete the item everytime i clicked on the remove button but it appears a gap/space between it. I want to push all remaining box_mc at the bottom up after i remove 1. It only push up when i come back to this page after i navigate to some other page. Does anyone know how to implement this ? P.S. i tried using enterframe and i failed, probally the way i did was wrong or watever.
Isn't there a simple "remove all children" function in flash? I don't understand why this code isn't working. I add children via: for (var i in project_array[cp].project_type_clips){ container.header.type_loader.addChildAt(project_array[cp].project_type_clips[i],i); loadCount++ }
And then remove them via: for (var i in project_array[cp].project_type_clips){ container.header.type_loader.removeChildAt(i); }
But I get an error that the supplied index is out of bounds, and yet one clip is still left on stage. Likewise, if I try to add them without levels, like this: for (var i in project_array[cp].project_type_clips){ container.header.type_loader.addChild(project_array[cp].project_type_clips[i]); loadCount++ }
And remove: for (var i in project_array[cp].project_type_clips){ container.header.type_loader.removeChild(project_array[cp].project_type_clips[i]); } I get the same error.