I have a button labeled 'blueButton' and I'd like to use an anonymous function to handle the click, like so:
blueButton.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void { trace( "-----click detected-----" ); // now do other stuff });
Problem is, the click handler is called multiple times per click. The number of times called seems to be random (sometimes 2, sometimes 4, sometimes 3 etc). could I be missing something in my code, or maybe I set up the button wrong?
also I noticed that it seems to always get called once on the first click. After the first click is when it starts getting called additional times, maybe that has something to do with it?
In c++ if I have a function that takes a class I have defined elsewhere as a parameter like so:void moveto(CPoint2D point) { ... }I can invoke it and pass along data to it like this:moveto(CPoint2D(0,0));basically creating the object and invoking it's constructor to be passed to the functionIs there an equivalent to this in AS3?if I have a function like this:function initialize(min:Point, max:Point): void { ... }how do I do something along the lines of :initialize(Point(0,0), Point(10,10))This throws an error im assuming because it thinks I want to cast something to a point and the notation I found earlier to do something similar only seemed to work if using the basic Object class.
I have a preloader.swf which loads in media_player.swf which is fine. thats all working I also have the preloader loading in a variable from the webpage using flashvars and thats also fine i have that outputting onto a text box so i can see it but what im trying to do is set the source of a uiloader inside the media_player.swf to the variable that im loading into the preloader.swf.
how you would target a function's local variable through a concatenated variable string.For example:
var txt = "Hello World"; function testing(msg) { var test1 = msg;[code].........
I'd expect the trace to be "Hello World" but rather is given "undefined". So if variables created outside functions are created on the main timeline, where are local function variables created and how would you access them?
I have an arbitrary number of files that I need to load in an AIR app.I want to iterate through an array of File object and create and launch Loaders for each one's File.url.When they are done (event COMPLETED or IOErrorEvent.IO_ERROR), I want to stuff their data somewhere. If they fail, I want to make an exception report. I cannot find any way to reference the File object from the event listener (certainly not the IO_ERROR)The best way would be to create individual event handlers for each Launcher that had the File information "hard-coded" into it. At the very least, I could use the function itself as an index to a Dictionary:
foo(fileToLoad : File) : void { var theCompletedHandler : Function = {
[code]....
Can I use event.currentTaget and use the Loader instance as an index? Will that have any weird dependencies ?
I need to pass a variable to a function inside a function. However this parameter (i) seems not to be passed (to function ...onRollOver). This is required to attach a textfield to a movieclip (reading the adress and showing it as a tooltip).
ActionScript Code: for (i=0; i<array_BE_ElecCities.length; i++) { var attachElecCity = mc_map.mc_places.attachMovie("Plant",
1- Variable Scope : Accessibility and existence are used almost interchangeably in various documents I've read. I'd like to know if a local variable physically exists (in memory) outside of the function it was declared in, and is not accessible from other methods, or if its existence ceases outside the function.
2- Classes : When do you create an instance of a class versus importing it only, specifically in the case of classes used only as say, calculators ?
I have 3 movieclips in the Libarary, called (both by name and class) section0, section1 and section2.This works for instance to attach a movie clip to the stage:
Code: var myMovie:MovieClip = new section1; addChild(myMovie);
This is a function on the first frame of a .fla updated to AS3 from an old AS2 file:[code]When the function is called it should set "max_messages" to 600 in AS3, right?
If I remember correctly, objects are being passed to functions by reference, so I wrapped my primitive variable into object but did not get the resilt I wanted. I combed this group to see the solution and found only this one:
function changeObjectStatus(obj) { return obj.status = true; }
[Code]....
var v seems to be a new object rather then a reference to the old one. and changing v does not affect the original object.
Does this mean that if I want the function to work with several variables, I need to create a separate object for each variable?
I have this script that reads pictures and links of the pictures from the an xml file, display the picture and then put the link for the image, but I can't seem to pass the link to the onRelease function anyone can help me on this, below is the code:
It seems that with as3, the error compiler is just waiting to get you.I have a function that loads in an external swf. Which swf depends on which button they click. So, it could be pic1.swf, pic2.swf, pic3.swf, etc.
function loadMovie(){ my_mc.addChild(my_Loader); addChild(my_mc);[code].....
When i test, I get "error: access to undefined property myVariable.
I want to load an XML file and access one node value. I decided to store it in a variable(var addedNumber).
The problem is I want to access this variable in a new function (loadURL)"outside" of the scope. Is there a clearer way to do this instead of using nested function?
PHP Code:
var XMLLoader:URLLoader; var XMLPath:URLRequest; var XMLDoc:XMLDocument = new XMLDocument();
k the idea is that this movie keeps tracks of whatever page it's on using the variable current. when the button evolution is clicked it should jump to frame 2 of the movie whose instance name is contained in the variable current and also pass this variable to a function called alpha which fade that movie's instance when moving to another page - then that page's name will be assigned to current.
After having recently just discovered the delights of actionscript, I am at a loss to work this out. I'll explain:I have a series of buttons which, when each one is clicked, need to grab their instance name (this._name), strip the first three characters from it and send it to a global function in another mc within the swf.Instead of stripping the characters, I am happy to do:
I have an event listener with an anonymous function literal, rather than a function reference. What I am trying to figure out is how to remove that event listener.Obviously, I need a reference to the anonymous function, so the two functions are ===. But, something is going wrong... it just doesn't work, ad this situation doesn't generate any feedback to tell me what might be wrong.There is some good info here, but not a clear explanation.
Code: private static var _myFunc:Function; public static function addCreditsToolTip(clip:DisplayObject):void
I'm trying to write a robust "eventMaker" function that I can run with arguments that will then create an event listener based on the arguments.
However, I can't seem to get it to pass the arguments. Functions are impossible to pass; it can't convert string versions back to functions, and passing the function as type :function just yields "function() function{}".
The same is true with strings and class definitions - if I want it to refer to an object in my other .AS file called "helloWorld", I can't make it think of helloWorld as anything other than a string or an object, and when I write commands based on it I get errors.
So how do I contain classes, functions, et al in variables that I can then reference again, in code, as those functions/classes? How can I convert a string value to something that the code will know is a reference?
In as3, I am adding event listener and then attaching the anonymous function to it:[code]Now this whole piece of code is looped n times. Now, I have n myBoxes and whenever I roll my mouse over the box, it should alert the name. But, what I see is that the last value of count is used by each box. How can I pass parameter or value to the anonymous function? ( as roll over , I believe, expects only one variable)
little bit what Im trying to do: I have 2 SWF, one.swf and two.swf 1 LocalConnection to send 1 variable from one.swf to two.swf
one.swf code:
var param:Number = new Number(5); var sending_lc:LocalConnection = new LocalConnection(); sending_lc.send("_Connection1", "myMethod", param);
[code]...
I need to be able to use param value out of the function, because a I need to perform a switch with this value, since the function wich receives de param value is an anonymous function I dont know how to do to get the value from outside the function because a dont have a reference name to the function so, the normal way to return a value is not going to do the job.
I am trying to play an MP3 File in Flash Lite 2.1 (I'm using Flash 8 to develop it). The filename of the MP3 file is imported from an XML file.Here is a copy and paste from the help file on how to do this:
// create a new Sound object var my_sound:Sound = new Sound(); // If the sound loads, play it; if not, trace failure loading. my_sound.onLoad = function(success:Boolean) {
[code]....
When I test this code on its own, it does work fine for me. However, I want the above to be executed inside a function that does a number of other things... Here is a sample of what I'm trying to get working.
function myMusic() { // create a new Sound object var my_sound:Sound = new Sound(); // If the sound loads, play it; if not, trace failure loading.
[code]....
I think it's got to do with the fact that once I put it inside a function you are nesting functions (there is a function call from the onLoad event).
I tried changed the line:
my_sound.onLoad=function(success: Boolean) { to my_sound.onLoad=myFunctionName(parameters go here)
and then I created a funciton called myFunctionName but I wasn't sure how to send the sound object or what parameters the function should have or how to get the .start() method to work inside the new function.
up.addEventListener(MouseEvent.CLICK, function clickFunc(event:MouseEvent):void { revealSpinner(event,51.42,1,spinner);
[Code].....
The above code adds a listener to a couple of MC's. Originally the methods were anonymous but I have named them clickFunc() in order to try an reference them in my remove listener.
Here is my remove listener code. Both of these snippets are in separate functions. The add listener method is called before the remove method.
If I want to send an object to a function with one child called foo equals "bar", i need to do the following:[code]is there a way to declare the object in the function itself ? something like that:[code]
Getter functions allow obj.meth syntax instead of obj.meth(), I'd like to create an anonymous one of these to return from another function. function get ():Object { } is invalid syntax. I don't suppose Flex offers an easy way to get this functionality, if it's even possible?
I'm trying to differentiate anonymous functions like:
function() { trace("WOO"); }
from the other ones ('named'?) like
var _FUNC:Dynamic = function() { trace("WOO"); }
The reason I want to do that is because I can't compare between two anonymous functions, because they are two different ones.
var _TEST:Dynamic = function(a:Dynamic):String { var _TESTA:Dynamic = function() { trace("WOO"); }; var _TESTB:Dynamic = _FUNC; return (a == _TESTA) + ", " + (a == _TESTB); }
If I run _TEST(_FUNC);, I'll get back "false, true". Even though they are the same function, they are NOT the same object.Is there a way to compare those such that functions that they are the same if they perform the same task? Is there a way to serialize functions? So that maybe I can compare the serialized representations and see if they share the same 'code'.