ActionScript 3.0 :: Event Listener To Check That Function Complete?
Mar 3, 2010
I am trying to create an event listener to check that a function has completed before the next action is run. In simple terms I have a module that is opened and closed via two functions... module_open() and module_close().Each function has tween elements that must complete before the next element is processed... i.e the next function, etc.This is the code I have ( have attempted to create an event listener but I seem doing something wrong. I am not even sure that it is possible to create an event listener that checks for a function finishing before calling the next function.
Code:
function onAbout(event:Event):void {
module_close()
module_close.addEventListener(Event.COMPLETE, onClose_Complete);
i'm trying to check if a movieclip has an event listener with a sepecific function bound to it. The hasEventListener function only accepts one parameter (the listener). What i would need would be an hasEventListener that accepts a second parameter, namely the function that is bound to it.
Code: if (!mc.hasEventListener(MouseEvent.ROLL_OVER) { mc.addEventListener(MouseEvent.ROLL_OVER, overHandler); }
but what i would need is:
Code: if (!mc.hasEventListener(MouseEvent.ROLL_OVER, overHandler) { mc.addEventListener(MouseEvent.ROLL_OVER, overHandler); }
because i bind more than one ROLL_OVER listeners to that mc.
ok this seems to look like it should work.. but for some reason the Event.COMPLETE listener for the loader is not getting fired..
does anyone see something that I missed..
i put in trace statements in to see where its not getting to..
I verified this so far..
- the constructor function does appear to add the even listener to the loader.
- Unit3DPreview.load() function gets called (from the parent class) and receives the _path string properly..
- the loader does have an Event.COMPLETE listener at the time of the loader.load() call..
- the renderAnimation listener function never gets fired off.. even though the listener has been added..
there is no IO error.. the image is in the correct location.. I know this because if I remove it .. I get an IO error..
one thing is that there is an instance of this class already placed inside a library symbol that is associated to another class that passes a bunch of data .. the preview image path being one part of it.
not sure if having it be already existing vs me creating it via code would make a difference .. that is something I have not tried yet.
I'm having problems accessing a Event.COMPLETE listener for loading a php file:
Code: function prepareD(){ //more code before var hsloader:URLLoader = new URLLoader();
[Code]....
What is happening is I'm creating a new URLloader, then loading the php, and I create a Event.COMPLETE listener, but when the load completes (I've tested with navigateToURL), the listener doesn't trigger. I've also tried putting the var before functions, but it doesn't work either...
when handling data, i always have to write the following:
var dataSourceRequest:URLRequest = new URLRequest("/path/file.xml"); var dataSourceLoader:URLLoader = new URLLoader(dataSourceRequest); dataSourceLoader.addEventListener(Event.COMPLETE, handleDataSource);
while i can understand the usefulness of these 2 objects and event listener being separate, since they often work with each other i'd like to know if there is a method that will combine them all? the closest i can get is this, but it's a bit pointless/nesting:
var dataSourceLoader:URLLoader = new URLLoader(new URLRequest("/path/file.xml")); dataSourceLoader.addEventListener(Event.COMPLETE, handleDataSource);
what i'd really love would be something that automatically combines the URLRequest, URLLoader and completed event listener like this:
var dataSource:Whatever = new Whatever("/path/file.xml", handleDataSource);
Im trying to get the grasp of classes and as3 and i got probably an easy question for someone with good as3 knowledge.Lets say i got a main.as and a class URLLoad.as that loads some external vars. In the URLLoad class i got a event.complete listener. So i know when the vars are finnished loading and everything works fine. But how do i know it has finnished loading the vars if i try to reach them from main.as file??? Whats the routine for doing this? Is it better to remove the event.complete listener to main.as file?
Is their a way to check if an event listener already exists to remove it? stage.addEventListener(MouseEvent.CLICK, clickdownfunction); Basically, I want to remove the listener, but sometimes it has already been removed, so I want to check if it exists and if it does, then remove it.
I'm moving on to my next massive programming project and I'm trying to decide whether I should code it in as 2.0 or 3.0. I came across the new click event model in 3.0. Right now it's looking like a pain in the butt to me. So now I have to make a function and add it as an event listener? what the hell? What's the benefit? I understand stuff like this makes AS a more complete language but it's kinda annoying.
I am attempting to build a generic XMLLoader class with a static LOAD method, with the intent to use it as follows...
private var _data:XML = XMLLoader.LOAD("path/to/xml_file.xml");
Then I could use it in any client and go-to-town with e4x.
The general problem I am having is with the URLLoader's COMPLETE event, which necessarily calls a different function to set the XML data.This is preventing me from being able to return the XML from the LOAD method, since the data is being set outside that function. Obviously I need to wait for the COMPLETE event in order to make sure the data is available.
I though, perhaps, I could create and return a _waitForData function, which recursively calls itself until the _data is set, then returns the data. But it seems redundant (since Event.COMPLETE is doing that anyway), and the way I tried it generates a stack overflow error.[code]...
I am running a loop to pull thumbs into a containing movieclip from an xml list. What I want to do is have the thumb's parent movieclip fade in after they are done loading, but I can't figure out how to reference the parent once it's loaded.My code(which currently doesn't work the way I want it):
var vsThumb:articleBox; var currentarticleX:Number = 0; var articleLinkURL:String;
So, I'm trying to load resources, add them to a dictionary, and have a drawing method search through that dictionary and draw based on certain predicates. I have a function that iterates through an Vector of Strings, calling on an instance of Loader to load them instantiated as a URLRequest.
private function loadImages(urls:Vector.<String>):void { var loader:Loader = new Loader();
[Code].....
So the issue is: Only the first images in my Vector are drawing. Upon further inspection, I found that the completeHandler was only being called once (I put a trace in the complete handler to check). However, the Loader is invoking load everytime the loop iterates. I tried instantiating separate loaders for each resource, just to see if it would work, but I had no luck with that. Do I need to make separate loaders and event handlers? Or am I just not using Loader correctly?
I have created a class named XMLclass and inside that class there is a function named returnFillColor.The function looks like this:
Code: public function returnFillColor(XMLchild:uint):String{ var xmlLoader:URLLoader = new URLLoader(); var xmlData:XML = new XML();
[code]....
When i call this function from my main class, it returns nothing because the XML wasn't done loading. I've double-checked this by adding addEventListener(Event.COMPLETE) outside the function.Is there any way to return data from the xml-file with just one function?(like adding event.Complete to the returnFillColor-function)
i am trying to return an XML object, but having issues. The object is only created via an Event.complete function. I need to return the XML created from my loadXML function via my grabXMLfromFile function.
Code: function grabXMLFromFile(attrPathToXML:String):XML { var fileUrl:String = attrPathToXML; var myUrlRequest:URLRequest = new URLRequest(fileUrl);
i'm loading in multiple images using the same loader using a for loop. what i'm trying to figure out is how can i tell when the first 4 images are loaded. is there away to attach and index to each loader and then get it from the event in the on complete function? below is the code i'm using:
I am having an issue with a class I'm working on. I currently load an image as a bitmap and store its data into regState:BitmapData so that I may make new instances of that image later on. When I test if I can use the loaded data at a later time with my newBitmapIntance() function, it says that regState is null. I'm lost as to why this is the case, since it works flawlessly to create an instance of itself in my loadContent() function.
Class so far For reference: package { import flash.display.MovieClip;
I am working on a game for my university project and I have run into a bit of trouble. I have the following code here:
function launchBall() { this.stage.addEventListener(KeyboardEvent.KEY_DOWN ,launchBallHandler); function launchBallHandler(e:KeyboardEvent):void { if (e.keyCode==32) {
[Code].....
Its set up so that when a ball goes off screen, it resets to a coordinate and launchBall is called.
LaunchBall then adds the event listener to see when the Space key is pressed and that starts the ball moving again. The problem I have now is I cant seem to get rid of that eventListener. I have tried removeEventListener and that doesn't seem to work. I have tried:
if (ball.xVel>0 && ball.yVel>0) { removeEventListener(KeyboardEvent.KEY_DOWN,launchB allHandler);
just below that code and that doesn't work either. It's not spitting any errors out at me but I am completely stumped.
I just started a course that does a little flash. To teach us they have us build a brick breaker game. I have come to a part were I have to remove all the Listener that were created for the game. Each level is a movie clip and when the level is over the level instance is removed from the child. From what I understand when the level is removed the Event.REMOVED_FROM_STAGE becomes true and the function attached should be called however it is not. Here is the code of the function that sets the listener and the function to be called:
I have a method which registers an event listener to each of the MovieClips in an array I have. The method is inside a class, and so is the listener function. The problem is, I'm getting an error that's says "Access of undefined property handleNavToggle", even though is declared.
How do i pass a variable to a function from an event listener which is inside a function Below is a function that is called when after loading some variables
function dataOK(mydataevent:Event):void{ var j:int = 0; do { trace(j);
[Code]....
This is a simplified version of the original code. The above function generates an error because j is undefined in the function. I am wanting to get the variable j when the button is pressed.
How do I pass the variable j to the Button_Click function?
I'd like a movie clip called "following_cursor_mc" to follow the cursor, regardless of which of several different frames the playhead may be on. I've reproduced the code below on each frame in which I would like the cursor to be followed by "following_cursor_mc" but these errors are thrown for each of the frames:
I'm trying to return XML from an event complete back to the main function, but can't figure out how to do it.Here's the functions I'm calling:Main File:
public var mySendAndLoad:SendAndLoad = new SendAndLoad(); mySendAndLoad.sendData(url,variables) The mySendAndLoad class:
I have a set of buttons on, and what i would like to do is change the value of a variable, depending which button you are over.i know i could do this by writing an event listener and a function for each button, but this is too time consuming.I'm sure in the old days it would have been as simple as if btnwhatever.mousedown = true then.... but now i have no idea.