ActionScript 3.0 :: AddEventListener() With Parameters?
Jun 2, 2010
I've been browsing lots of forums lately regarding the issues involved with passing parameters into functions called by event listeners. I think I may have come up with a good solution using anonymous functions but I'm not sure yet if its "safe" to do.
The code prints "hello" once, which is what I wanted. I believe I have deleted the anonymous function, but I need some thoughts from those who may be more knowledgeable about flash garbage collection and such to be sure.
So I have an MC that has 6 labels and 6 buttons all with different names. When you click on a button, it needs to direct you to it's appropriate frame label in the MC. Now, since AS 3.0 has done away with inline functions, how the heck do I code it so I don't have a function with a bunch of if statements inside of it in addition to all of my eventListeners that I have to add to each of my buttons? In AS 2.0, I would have done it like so:
With AS 3.0, you have to add eventListeners to each of your buttons where each eventListener calls a function, but how can I write it so I don't have to write a bunch of if statements inside the function the eventListeners are calling in order to test for which button is being clicked? Like so:
Here I've got this bit of code that works alright, but I would prefer to have the parameters that are being sent through myTween.tweenMe(_text, 40, 300, 150, 100, 4000) originate instead with the call to tweenerIt. The problem seems to be that the tweenerIt function needs to receive the e:Event parameter, which is some sort of 'behind the scenes' type of thing that I don't fully understand. If I try putting ... _text.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt(_text, 40, 300, 150, 100, 4000) and then something like.. private function tweenerIt(param1, param2, param3, etc..., e:Event):void, it doesn't work.
Code: _text.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt); } private function tweenerIt(e:Event):void {
i have couple of videos that i want to play in succession. my theory on how to do this was to add an event listener that would call function to change the source of the FLVPlayback component and play once the initial video finished playing. The problem is that i don't know what parameters to pass to the eventlistener and the acting function. I just need someone to fill in the blanks to the following code
I am trying to make an interactive flash application that works by detecting mouse overs and clicks on various buttons/movie clips and then moves to the appropriate part of the time line. But I am having an issue when I use more than one addEventListener in any one frame. I have attached the code for one such frame below. When I comment out the addEventListner and the other code relating to the followBall function this works fine and directs the user to frame Inlet_Valve_Open_Frame but now only the followBall function is working and when i try to click on the Inlet_Valve_Button movie clip nothing happens.
Can someone please help. I have never read all the help files on the adobe flash CS3 as i don't have time and i have built this code up based on examples i have found online. I wanted to include my fla file but it's to big 6Mb. But i have attached the swf so you have an idea what i am doing.
If in a situation, the addEventListener is being assigned more than once for same actionwhat will happen then? Suppose on frame 5 there is ample_btn.addEventListener(MouseEvent.CLICK...... ... and when user navigates the application/site it comes on frame 5 again and again. Will the addEventListener be applied more than once on that button? If yes then what will happen on clicking on that button? will the associated function be called more than once now?
I have made the flash file into CS3 and simplified the idea a bit. Basically I want to click the box on the right to start playing the song and the spectrum and then if I click it again it will stop playing the song and the spectrum then if I click it again it will start playing again ect ect. I could not upload the song.mp3 cause the file size was too big you will have to replace it with another mp3 in the root of the folder and name the mp3 song.mp3.
I want to do something quite simple, but am new to AS3 and the changes since AS2.I want to click a button (play_btn)Then when this happens it opens a SWF (movie.swf) into a placeholder (placeholder_mc) onto the stage. That's it!
play_btn.addEventListener(MouseEvent.CLICK, placeholder_mc); function placeholder_mc(event:MouseEvent):void{ trace("pressed"); loader.load(new URLRequest("movie.swf")); }
I have created a scrolling bar menu. All the buttons in the menu work except for the last two. When I place a trace statement within the function it definitely is listening to all the buttons except for the last two. All instances are named correctly. Can the size of the scroller be contributing to why the addEventListener is not working?
I have this map I'm creating in Flash. You click on a state, then you can click on an icon to view a tooltip/popup of some information. What I was trying to do was instead of creating new functions and event listeners for every different icon is to use a for loop...but it's not going so well.[code]...
I have created a navbar in flash with 5 different movieclips I use as buttons. Each movieclip(button) has a different instance name. Is there a way to use addeventlistener so that I dont have to do soemthing like this[code]...
I currently have a .swf file that is nested into another .swf file. In the parent SWF file I use a UILoader to load the other .swf file. uiLoader.source = "data/child.swf";- In the child SWF file I have stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressedDown); and when I run it on it's own, it works perfectly; but when I run child.swf through parent.swf stage.addEvent... give me a null reference exception. Is the stage part of what is causing the issue?, and if so, is there a way to fix this?
but when i use this loop, i get a 1006 error, "value is not a function":
ActionScript Code: var buttonNumber:Number; var buttonName:Array=new Array("home","resume","portfolio","contact"); for (buttonNumber=0;buttonNumber<4;buttonNumber++) { buttonName[buttonNumber].addEventListener(MouseEvent.CLICK,route); }
is there something obvious that's wrong with my last line in that loop? i've narrowed it down to the part where I call the array value. but after that - I'm at a loss!
I'm trying to use addEventListener with a SimpleButton object. In an earlier version of my movie, I had identical addEventListener code on a button from the library, and it worked great. But I had to switch to creating the button in AS3 instead, and now the code won't execute. [cpode]...
how i can put an EventListener into a if statement... more specfic:
Quote:
mc_pil_info.buttonMode = true; mc_pil_info.addEventListener(MouseEvent.CLICK, infob); function infob(e:MouseEvent):void {[code]..........
for instance i have a mc as my primarily mc as i make to a buttonMode = true.Inside this mc i would like to have a animation, when i rollover and out...:
I have a for loop that loads a variety of movie clips that I want to have function as buttons. From what I've read adding an event listener is the way to go but I'm not sure how in this case. I've searched online and found a few articles that come close to what I need but not quite. Can't I just tack on an event listener for a mouse click on these objects and have it run a function I have defined elsewhere?Also in said function what code would I need to use to reference the button that was just clicked, would this. work?
I need to add an event listener to a music player script, but the button it is listening to is in a completely different timeline, and layer. (see the attached file for a crude diagram).
How to I reference this in the actionscript in the music player? Each time I try, it disables all other listners in the music player, and outputs a message; Error #1010: A term is undefined and has no properties.
Is it possible to create an EventListener about some event, and also sending some variable to the function that's called when the EventListener = true?
I am trying to add event listeners to a series of buttons using a for loop but can't get the event listeners to trace the name of which button was rolled over. Here's a simplified version of the code.
ActionScript Code: var bgArray:Array = new Array();//array to hold my sprites for (var i:Number = 0; i<8; i++) {
add an event listener to a button so you can see when it's been clicked but can you add one to a variable to perform an action when the variable changes or do i just have to use an onEnterFrame function to check the value and act on it if it's changed?
[varible].addEventListener(MouseEvent.CLICK, [varible]);If so How? I have tried 50 different ways, with no success. The names of all of my buttons are creating in a for loop and numbered from XML. I need to call each one with a single line. I cant have an event listener for 600 buttons.
I am creating an app with Papervision, and I'm trying to create an interactive grid.I have created a for loop to lay out each tile of the grid, but I want each tile to be individually interactive. I have tried a few things but no luck so far. This is basically how far I am:
Code: for (var i:uint = 0; i < 10; i++) { for (var j:uint = 0; j < 10; j++) {
Im making a cooking game and basically I have my buttons and background export to the stage, which is good, but now I want to make it so when you click on the mustard it exports the mustard movieclip to the stage.For some reason I am getting an error that does not make any sence to me. Error 1061: Call to a possibly undefined method addEventListener through a reference with static type Class.Here is my code:
I am trying to build a simple mock-up of a product my team is designing and I can't seem to get the addEventListener to work. At the moment, my mock-up contains code that Alex Lexcuk has written that deals with the page flipping animation. I suspect that it might be interfering with the addEventListener code I have written. I have placed my addEventListener code inside the Content symbol. I have uploaded my project to the following URL:[URL]