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.
View 3 Replies
Similar Posts:
Sep 6, 2010
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.
For example:
PHP Code:
slideLoader1.contentLoaderInfo.addEventListener(Event.COMPLETE,loadJPG, false, 0, true );
I started using the "weak" listener based on what I've been reading about garbage collection, but actually this works better:
PHP Code:
slideLoader1.contentLoaderInfo.addEventListener(Event.COMPLETE,loadJPG);
The presentation runs much longer with the second listener type. In both cases I'm removing it this way:
PHP Code:
slideLoader1.contentLoaderInfo.removeEventListener(Event.COMPLETE,loadJPG);
Is there a problem constantly adding/removing eventListeners this way?
View 13 Replies
Jan 16, 2012
I have 20 buttons on my stage, and rather then have 'removeEventListener' for each button, i wanted to use a loop to do so. Heres what i have done.
Code:
//array containing the buttons instance names.
var soundArray:Array = new Array();
[code].....
View 14 Replies
Jul 15, 2010
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] .....
View 9 Replies
Sep 18, 2009
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]...
View 3 Replies
Aug 18, 2011
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:
myArray = {aMissionAward, anotherAward, ubernessAward};
My buttons would be: buy_0, buy_1, buy_2, etc.
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".
Add this AS3 code:
for (var i:Number=0; i<3; i++)
{
this["mc" + i].addEventListener( MouseEvent.CLICK, onMcClick );[code]....
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. :)
View 2 Replies
Aug 5, 2010
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:
Code:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
[code]...
How can i remove each the listeners from each swf so that the site doesn�t perform so slow?
View 3 Replies
Apr 13, 2009
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;
[Code].....
View 2 Replies
Dec 8, 2009
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]...
View 1 Replies
Jun 7, 2011
The label variables are null at the end of the loop. This has worked for be in the past. What am I missing?
[code]...
View 3 Replies
May 19, 2009
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].......
View 1 Replies
Nov 1, 2008
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?
View 5 Replies
Apr 30, 2010
But anyway, my problem is that, I have 52 Button instances on Scene 1 as bellow:
B1 , B2 , B3 , ... , B52
and I want to assign seperated actions for each of them.
The way I currently CAN do that is this:
B1.addEventListener(MouseEvent.MOUSE_DOWN, B1F);
B2.addEventListener(MouseEvent.MOUSE_DOWN, B2F);
B3.addEventListener(MouseEvent.MOUSE_DOWN, B3F);
[Code].....
But "test.addEventListener(..." does not work, and Flash searches for a function named "test" instead of working with the VALUE of "test".
View 1 Replies
Oct 12, 2009
I`m trying to assign values to a dynamic text field.[code]Can you please tell me how to make it work trought for loop #1
View 1 Replies
Apr 30, 2010
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:
B1.addEventListener(MouseEvent.MOUSE_DOWN, B1F);B2.addEventListener(MouseEvent.MOUSE_DOWN, B2F);B3.addEventListener(MouseEvent.MOUSE_DOWN, B3F);...B52.addEventListener(MouseEvent.MOUSE_DOWN, B4F);
[code].....
View 7 Replies
Oct 11, 2010
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.
View 1 Replies
Sep 13, 2011
the current code I have on the timeline now (where the buttons reside) is:
stop();
function playLifeboy(event:MouseEvent):void
{
[code]......
View 9 Replies
Feb 24, 2010
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
[code].....
View 7 Replies
Aug 9, 2002
how to assign movies to buttons. I don't know how to do this in MX. In five I used to use tell targets to assign actions. Is it the same in MX.
View 5 Replies
Dec 14, 2009
//AS BEGINS
var productList:Array = Array("diabeoff", "cholestoff", "inulina", "colageno", "power", "castoff", "dieta", "miel", "extrapower");
[code].......
View 8 Replies
Sep 17, 2005
[code]...
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
View 3 Replies
Jul 13, 2008
Is there an efficient way to assign the following switch statement to two different buttons (movie clips)?
[Code]...
View 3 Replies
Oct 15, 2009
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...
ActionScript Code:
listing.home.addEventListener(MouseEvent.ROLL_OVER , butOver)
listing.home.addEventListener(MouseEvent.ROLL_OUT , butOut)
listing.home.addEventListener(MouseEvent.CLICK , released)
[Code]...
View 2 Replies
Dec 22, 2009
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;
[Code].....
View 3 Replies
Mar 25, 2011
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:
<mx:states>
<mx:State name="newRow">
<mx:AddChild relativeTo="{cityDropdown}">
<s:DropDownList id="newbutton" creationComplete="hotelDropdown_creationCompleteHandler(event)" labelField="Name">
<s:AsyncListView list="{getAllHotelResult.lastResult}"/>
</s:DropDownList>
</mx:AddChild>
</mx:State>
</mx:states>
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.
View 2 Replies
May 11, 2010
How to dynamically create buttons and assign them names to use later on in the code.? For example:
ActionScript Code:
If(a==3) {
create three buttons:
[Code]...
And then assign some functions for these buttons - like:
ActionScript Code:
but1.addEventListener.....
View 9 Replies
May 12, 2010
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()
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;[code]....
View 3 Replies
Apr 12, 2011
I have a 13 buttons to wich I added Event listeners using a for loop:
Code:
for (var i:Number = 1; i < 13; i++)
{
[code].....
View 9 Replies
Jul 17, 2011
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
View 2 Replies
Jan 20, 2009
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.
View 1 Replies