ActionScript 3.0 :: Using Loop To Assign EventListeners To Buttons In External SWF
Mar 31, 2010
I'm fairly new to AS3. What I'm trying to is create a multiframe SWF (main.swf) that loads several external SWFs (ext.swf) on each frame. I've got that to work. My problem is that I'm trying to assign actions to buttons/MovieClips in the external swfs that navigate to different frames in my main.swf. I want to avoid hard coding the buttons because there are about 30 external SWFs and they don't all have the same number of buttons within them. The approach I took was creating two arrays in each ext.swf, one to hold the button instances and the other to hold the frame destination labels.
Code:
var buttons:Array = [link1, link2, link3, link4, link9, link10, link20, link21];
var links:Array = ["c1", "c2", "c3", "c4", "c1", "d1", "d2", "e1"];
Then in the main.swf, I created a function that loads the ext.swf and runs a "for" loop that assigns EventListeners to the contents of the "buttons" array to go to the frame labels defined in the "links" array.
[Code] .......
The "for" loop in the "assignLink" processes and traces the "links" array just fine, but it always assigns the last array item to every button.
I've got a presentation that continually reads an XML and displays content based on that. It works fine for 2-3 hours then just stops. No errors, just stops.
What I'm doing is adding and removing eventListeners throughout the process using two alternative loader objects.
I'm trying to assign Event Listeners to buttons in an array and increment the function referenced in those listeners by 1 so the functions have unique names, is this possible?
ActionScript Code: //ROLLOVERS FOR MENU var btnsAry:Array = [hs1_mc, hs2_mc, hs3_mc, hs4_mc, hs5_mc, hs6_mc]; function setButtons():void { for (var i:int=0; i<btnsAry.length; i++){ btnsAry[i].id = i; [Code] .....
I have this function that I want to apply to 10 different MovieClips that are on the stage by using an array. I wrote the array, I just need to know how I can apply the array to the function. [code]...
I'm working on a game where users can win buttons/badges as awards. I estimate there will be around 500 awards, in all.I want to allow the users to sell their duplicate/unwanted badges to the bank and buy new ones from the bank.I am showing the badges in multiple awards frames. Below the badges, I show the count, along with a "Buy" and "Sell" button.My question is: What's the best way to handle SO MANY buy & sell buttons? Is there a way around coding 1000 eventListeners and 1000 eventHandlers?
One possible solution is to name my buttons, incrementally, like "buy_mc1", "buy_mc2", etc. Then do a loop to create listeners for this["buy_mc" + i]. However, I would then have to make VERY sure that I link these back correctly to the awards.Currently, I have an "award_mc" field in my database, which stores the name of the movieclip in my .fla. From that, I can access related assets, like the count field, like: this[db.award_mc + "_count"].txt.Unfortunately, this method does not lend itself well to looped access.Maybe I can create an array of movieclip names that are in synch with the buy/sell buttons. For example:
When someone clicks a button, I can link buy_2 to "ubernessAward", then look for "ubernessAward" on the database.How can I get the number from the button, though? Even if I can loop through setting up the eventListeners, will I have to set up individuatl eventHandlers to process the correct index number? I was not able to get this to work with buttons on the stage. Apparently, buttons are a static class. MovieClips are dynamic, so I was able to get this to work by using MovieClips. Here's what I did:
Added 3 MovieClips to the stage. Named them "mc0", "mc1", and "mc2".
From here, I can tie the awardKey to an array of MovieClip names. Then, I can use the MovieClip names to read my database.This is why I come to Stack Overflow, FIRST, when I have a problem. :)
I have a menu with buttons on the stage that when clicked load external swf but the problem, although i can remove them from the stage, is that they are still playing which gives my site performance problems. I gave weak references to the Event Listeners but i didn�t remove them.Here�s the code:
I'm trying to imitate the spining preloader that fades as it rotates and I can't remember how to name each of the lines that are created with this code so I can later add the script to modifiy their independent alpha as it turns.
I don't know wether I need to create another function or what to do...
var numLines:Number = 12; var extRadAsterisc:Number = 20; var intRadAsterisc:Number = 10; var centreX:Number = 110;
I have done this same thing in ActionScript 3, but am not familiar with ActionScript 2, which I am forced to use for this project. I am loading products into a SWF via XML and attempting to add a click event to each dynamically-created movieclip. Simply tracing the text from a node in XML will do for now. I'd like to assign a property called "desc" or "description" to each movieclip and have it trace that property's value when clicked. Here is the relevant portion of my code as it stands[code]...
I want to loop through an array of mc's, and assign each a onRelease function. I have the following code but the trace inside the function doesn't seem to find the array.I understand why but what is the correct way of doing this?
ActionScript Code: var theArray:Array = new Array(); var j:Array = new Array();[code].......
The code I'm building creates two MovieClips on the stage, in one it instantiates several text boxes and in the other some buttons.
What I can't do is access data from the text boxes (e.g. textField.text) for use in the functions called by the eventListeners attached the buttons. I had the system all working nicely before I placed the text boxes and the buttons on separate movie clips.but this structure makes it much tidier to refresh the text I'm using.The button functions are fine with variables created prior to the building of the text boxes.
Am I failing to address the text boxes correctly (because they're on another movie clip) or is there a stage / movie clip property I need to set so they can see each other ... or is this something else altogether?Could it be that the buttons are created before the text boxes?
I am not an expert in Flash and my problem might looks silly.But anyway, my problem is that, I have 52 Button instances on Scene 1 as bellow:and I want to assign seperated actions for each of them.The way I currently CAN do that is this:
One of the things that I love about AS 1/2 is with scrpt assist on, the ability to click a box and assign an action to a button (over, rollout, rollover, click, etc.). With action script 3, at least in CS4 that interaction isn't there and you have to write the code.I'm wondering if in CS5 there is that ability with AS3? Am I the only designer who misses this function.
I am new top actionscript that is why I am trying to learn AS3 instead of the AS2 etc.anyway I am trying to create a number pad in flash (like a calculator but wothout the add, subtract etc) so that when I press a number its displays the number in the flash movie. I nearly have it but it only displays one number at any one moment but i need to be able to add upto 5 digits in the display, so that later on in the project I can validate this field to make the input is correct.here is the code that I have made but remember this is my first AS3 flash program so go easy on me
stop(); display.maxChars = 5; // start of the array
i have a buttons name list1, list2, list3 .... and so on and movieclips playlist1 , playlist2 .. and so on basically what i want to do is assign same action in the buttons, the code above is what i did and it doesn't work
i have a rookie question to ask and it's how to assign the same event listeners to multiple buttons in as3 instead of having to write out the same code over and over again like so...
I've got 5 movie clip buttons. When a user rolls over a button, I want one movie clip to play. When a user clicks on that button, an alternate movie clip plays. I'm trying to use an array to assign certain movie clips to certain buttons and actions, but I'm not doing something quite right. I can get one button to work correctly, but then am having issues getting the other buttons to work.
Here is the code I have:
var currentPage:MovieClip; var currentScreen:MovieClip; var prevPage:MovieClip;
I am amateur in flex, and started my final year project in flex to learn it, I am stuck in place where I have to create rows of drop down lists when the user pressed add more, E.g.: like the ones in mail attachments. I think I have found a way to generate rows, I am not even sure whether it is a correct way, how I generate the rows:
Now when I generate more rows the dropdownlist ids will conflict, so I want to know a way to generate ids, I think I cant even call a function in there.
I am trying to assign buttons my on my 'gameScreen' to move my character. though I am receiving an error msg saying: Error #1010: A term is undefined and has no properties.at Mainas()
I made a basic text editor that lets users insert predefined strings into the document with button clicks. What I need to do now is let the user define their own buttons and string values. For example I have a button that inserts "Hello" into the text. The user may want to create a button that adds "Goodbye".To accomplish this I figured I would create a .txt file called buttons.txt or something. i would readutfbytee, loop through it to create the buttons. problem is I know what I want to do but not sure where to start
I know this should be do-able, but i am stumped... I created a row of movie clip buttons + eventListeners (CLICK) with a for-loop. i now want to take an array that consists of a list of swfs (i.e., var myArray:Array=new Array(); myArray=["thing.swf","dog.swf",more.swf",etc}--and programmatically assign a loader + URL request to each of the created movie clip buttons that will load the swfs on the button click.