ActionScript 3.0 :: AddChild To Array Generated Menu?
Mar 26, 2009
I'm familiar with AS2 and just getting started with AS3. I found a submenu fla I would like to use, and I have everything set up, just not sure how to attach movies from the library when someone clicks a navigation button.In AS2 I would have made an empty mc and used attachMovie when the button is released.I've looked at some of the addChild questions and tutorials here, but since I'm working with pre-written code for a submenu, I'm not sure about how to modify what I've read to work in that code.Here's the code that sets up the submenu, the last function (navigate) is where I'm not sure how to instruct flash to load an mc when one of the buttons (from the var subButton:Array) is clicked. The MCs in the library correspond to the array entries ie: s.home has a library item mcHome, s.web has library item mcWeb that would load when they click that button. var s = this.services.subBar //create a variable to shorten the path to the buttons in the sub barvar subButtons:Array = new Array(s.home, s.it, s.web, s.graphic, s.contact); // create an array with all the buttons in the sub bar
for (var i:int = 0; i< subButtons.length; i++) // create a for loop to add the CLICK event listener to all the buttons in the sub bar at once
{
so i am parsing an xml file and each node becomes a button. ifigured out how to make each click work properly, but i can not getthe rollovers to work. with the code below makes it register youare rolling over one of the buttons, but it only shows the rolloveron the last button in my list. im thinking its because i am notreferencing my button correctly, but im not sure what the referenceis because the buttons are created through iterations.
I created a Menu with for Loops/addChild and TweenLite. But I have no clue how to tell flash to what page im going when I press one of the buttons.Because the specifications of the page can only be mentioned AFTER the onComplete function, because the content needs to be added AFTER the animation is finished.
I'm working with tons of array generated from a XML. How should I go about creating a search function that will be able to search and retrieve a particular nod from the array. Sth to do with .toLowerCase() and getIndexOf? The search function should be able to search and retrieve any text that contain the letter/letters... not the whole word. Like for example if user enter "gre", it should retrieve results containing "great" and so on.
ask flash which particular movieclip was rolled over , what is its instance name and than perform string operation to get a number (order) of that clip (I am naming all dynamically with image name + number in order)
I want to know the length of a xml. From a xml file I can make it work. In this case it's a database that generates the xml. So it is a URL, not a Xml. How can I make this work?
Code:
// loading xml // url_xml.onLoad = function() { // this is the array I need from the URL // var array1:Array = url_xml;
I've tried to generate movieclips dynamically the method I have used does the following: Uses a loop runs depending on how many movieclips I want to generate e Each time the loop cycles it creating a new movieclip instance Adds the new movieclip to an array Uses method addChild to put moveclip on the stage then draws a rectangle begins fill ends fill Adds it to that movieclip
I then use a conditional statement checking if the movieclip is the first item in the array if so it sets the current MovieClips x and y position to a chosen value. the first movieclip is used for a starting point to align the rest of the generated movieclips to. If not the movieclips x and y position are set to the previous array items x and y position + current movieclips width or height + the gap I would like them to have. Then the cycle repeats. I've coded this using timeline code and it works fine the shapes appear on the stage no errors. I tried to move this code off the timeline to an as file and the code has no errors but when run I just don't see the objects even if I trace there x and y positions I don't see them on the stage.
Timeline Code var mcArray:Array = new Array();// DEFINE ARRAY FIRST var randomNo:Number; var colorStr:String; var currentColor; var movieClip:MovieClip;// TEMPORARY VARIABLE [Code] .....
I am creating a platform game through the use of arrays, and i am inserting the platforms in a variable called blockHolder. I have successfully inserted generated blocks, but i want to insert my own movieclip, so i replaced this code:
Before:
Code: else if (lvlArray[i] == 1) {//making a new block var newBlock2:Block = new Block ;
[Code]....
And it gives the error: Implit coercion of a value of type class to an unrelated type flash etc.
I am trying to change the position of a movie clip which is acting as a menu and loading other swfs onto the stage. The problem is, is that the movie clip is also animated and when an swf is loaded the movie clip appears underneath the loaded swf. What method I should use to change the hierarchy of this movieclip.
is it possible to store and array generated in flash in a XML file?I am wanting to try make something where I have a group of object to choose from but I only want to choose say 3 of 10. I would like to be able to check the ones I want and then those be added to an array or an XML file which I can later pick up and use in another external swf.Because I am wanting to use an external swf I thought that adding it to say an xml file would be the option. But I don't really know how to get the ball rolling on this.
Is there a simple equivalent to what I used to do in AS2 to add a bunch of new objects to the stage and throw them into an array so they can easily be referenced? I'm finding this more difficult than it used to be.
Old code:
ActionScript Code: mc_array = new Array(); for(i=0;i<5;i++){
I'm just trying to add the mc's from the array into a column but don't know how to gain any control over them since right now, they're just all overlayed on top of eachother .
Code: var myArray:Array=["mc1","mc2","mc3","mc4","mc5"]; for (var i = 0; i < myArray.length; i++) { var classRef:Class=getDefinitionByName(myArray[i]) as Class; addChild(new classRef()); }
Is there a simple equivalent to what I used to do in AS2 to add a bunch of new objects to the stage and throw them into an array so they can easily be referenced? I'm finding this more difficult than it used to be.
I have an array of a custom class. The class includes 3 movieclips that all share the same position. I have 5 items in the array, and in the document constructor I fill them as such:
ActionScript Code: glassArray[0] = new glasses(spot, beam1, glasses2, "index/nav/aboutus", new Point(156, 400));(different string and point for each of the 5 items)
Here's the glasses constructor: ActionScript Code: public class glasses extends MovieClip{ //I am the Constructor. public var spot:MovieClip; public var beam:MovieClip; public var glass:MovieClip; protected var target:String; [Code] .....
It then goes on to fill each of those mclips with properties based on the point received. How to addchild from the class, I've got a simple for loop in the document constructor that adds them all in. Everything works, except what I'm seeing is that as each item in the array is added in, it overwrites the previous items' properties. In effect, I can create 5 items and give them each a different position, but when I go to addChild I see that all of them have taken on the position of the 5th one.!
I am creating a container. When I press a button outside the container it adds a movieclip. The movieclip is the width of the container but only a fraction of the height. I need to know how to get it so every time I press the button it adds the movieclip after the last one, almost like appending a list. Does anyone know how I would do this?Do I use an array or does flash have some sort of table feature?
I want to create a grid of movieclips using an array. But every movieclip added needs some sort of unique idenifier so i can access each individual movieclip.
The grid is 6 movieclips on the Y and variable on the X(that doesnt really matter to be honest)
I have managed to create an Array that displays 6 movieclips on the Y using this [code]...
now i tried creating another class and storing the 6 tickets i made in this class in another movieclip and then using the same method in the other class (i called it Ticket_Batch) i created another row of 6 movieclips. although this kind of worked visually i could no longer access each individual ticket.
my question is: how do i create a 6 x 36(or any other multiple of 6) grid of my movieclips in the same class using an array (or 2 arrays) and giving each movieclip an instance name that i can access and use?
I'm using addChild(new nmonster()) to populate an on stage MC from my Library.
Instead of specifying the Symbol, I want to add it using an Array reference, like addChild(new monsterArray[0]()). I've tried a number of variations, but AS3.0 is unforgiving.
why i keep getting Parameter child must be non-null. And my code won't display 5 enemyBlock objects onto the stage but only just one.
returns: TypeError: Error #2007: Parameter child must be non-null. at flash.display::DisplayObjectContainer/addChild() at flash.display::Stage/addChild()
I'm trying to have a class file which can add objects to the stage via addChild; however, when I call addChild from within the class file, I get the error "1180: Call to a possibly undefined method addChild." I've tried importing flash.display.* and that doesn't fix the problem. Does the class file have to extend Sprite or MovieClip to be able to add objects to the stage?
I have downloaded Box2d ([URL]) and created a project that looks like this: [URL]. catalyst is the green cube and it has the base class "shapes.box", it is inside "world" which has the base class "wck.World". What i want to do is to add another "catalyst" from the library inside "world" when i click on add_btn. I tried to accomplish this by this code:
[Code]...
Symbol 'buttons', Layer 'Actions', Frame 1, Line 41061: Call to a possibly undefined method addChild through a reference with static type Class.
The newMC doesn't show up.If I add 'parent.' in front of the addChild then it appears.mc_LibItem has a base class of "flash.display.MovieClip" and is exporting for ActionScript and on frame one.For grins I created a new .fla and began messing around with the same addChild idea and it worked.
somewhat understood the basics of adding and removing children, however, I am facing another problem. After using the removeChild Function, I can't seem to add another child.For example:
ActionScript Code: var attachedMC = new (getDefinitionByName("Content1") as Class)() Page.addChild(attachedMC);
I have a main "shell" swf which, by clicking several buttons, will load/unload various external swfs into a Placeholder_mc which resides on the main timeline in Shell.swf In the documentation and tutorials I've seen a couple different methods, and I'm not sure I quite understand the difference, or at least the reason you would use one over the other...In the 1st method, you can just add the Loader object using the addChild() method:
Code:
var myLoader:Loader = new Loader(); var myURLRequest:URLRequest = new URLRequest("ExternalFileA.swf"); myLoader.load(myURLRequest); Placeholder_mc.addChild(myLoader);
This will apparently add myLoader to the display list once it has completely loaded.The 2nd method, you supposedly can add the Loader.content; however, it appears you can only do this once the content has completed loading, so you need to incorporate an event handler with the contentLoaderInfo object:
Code:
var myLoader:Loader = new Loader(); var myURLRequest:URLRequest = new URLRequest("ExternalFileA.swf"); myLoader.load(myURLRequest);
[code]....
What are the pros/cons of adding the entire Loader object, as opposed to the Loader.content and vice versa?
I'm trying to show and hide a sub menu. So what I want to do is for the sub menu to show up and stay up if certain buttons are clicked, but disappear if other buttons are clicked. I've got an array of the sub menu. If any of the buttons are clicked from the sub menu array, it should stay.
var subMenu:Boolean=false; This is my sub menu array: var arrSub:Array=[m8_mcButton,m9_mcButton,m10_mcButton,m11_mcButton,m12_m cButton,m13_mcButton,m14_mcButton];
When a button is clicked, I want to check to see if the sub menu is showing and to check which button has been clicked. This is the code I came up with, but unfortunately, doesn't work...
function onButtonClick(e:MouseEvent):void { for (i=0; i<arrSub.length; i++) { if (subMenu && e.currentTarget!=arrSub[i]) { arrSub[i].y=-130; subMenu=false; }}