ActionScript 3.0 :: Parallel Loaders Fail To Fire Some Event.COMPLETE
Oct 19, 2011
I want to dynamically load several png images from 6K to 2,5M. I create the loaders in a for loop and start them all at the same time, and listen Progress, Complete, IOError and SecurityError on each loader. The problem is the COMPLETE events are not always fired, even if Progress events show all images are fully downloaded.
I tested with Firefox and Chrome, I load 4 images 2.5M, 2M, 1M, and 6K, then I just get 2 or 3 COMPLETE events, sometimes the 4 are fired with Chrome. Did not find any workaround. I tried to listen ProgressEvent and call the completeHandler when bytesLoaded == bytesTotal but the loaderInfo.content is null (and bytesAvailable =0) so I can't get the Bitmap.
1) Is there a known limitation in the number of simultaneous loaders, from flash player or browsers ? Does Adobe recommend to have queued loaders instead of simultaneous ?
2) Is there a way to get the loaded Bitmap when COMPLETE is not fired ?
3) I don't keep the loaders in a property of my class, and use weakReference for the listeners : the issue can come from my code ? (but the ProgressEvents are received until the download is complete)
I'm an experienced AS developer, but this is something very basic about flex that I can't figure out. In the class below, I'm not sure why the function imageLoaded would not be executed when the image loads a url. Is there a race condition happening here? The application is completely loaded by the time this object is created and setPicture is called. How can I get the Event.COMPLETE event to fire properly in this case?The line and Log.info functions are conveniences for me, and they definitely work. Here's my MXML definition:
set some filters on the bitmap after it has been loaded.During development (Debug mode), everything worked and the even has been fired just fine.But now I switched to Release mode and the complete event doesn't fire anymore.To load the image, I set the source property of the image to an URL that points to a PNG image. That does still work in release mode, so the image appears correctly.It's just that the "complete" event doesn't fire, no matter what I try.
I'm trying to load PNG images with ActionScript with a Loader object. This works fine for some of the images (the INIT and COMPLETE events are fired as expected), for some other it doesn't. I've read in this thread that a URLLoader might help, so I tried that, using the loadBytes() function afterwards. Still doesn't work: the URLLoader fires the COMPLETE event, but the LoaderInfo object does not.I've written a sample class that demonstrates the problem with two files (one working, the other one not).
public class LoaderTest extends MovieClip { var output:TextField; var loader:Loader;[code].....
All images were generated with the PHP GD library and I'm compiling with SWFTools's as3compile.The two images map_in_big.png and map_us_big.png are in the same folder (not allowed to post more hyperlinks).
I've got a file upload that's working just fine except for the fact that the Event.COMPLETE event seems to take way longer than it should to fire. The Progress event is firing just fine and filling up the progress bar, and on top of that the entire file arrives on the server just fine, and way before the complete event fires. I've read I need to echo something back from the server, but I have no idea what that should be.
Our Flash app has to load 50 or so files from a remote destination. Under normal network conditions, this is no problem. However some of our users started to report that the application "stopped working" during the loading phase. After some tests where we decreased the network quality to a point where 1 out of 3 packets were dropped in bursts, we managed to reproduce the error reports. Looking at firebug, it appears as if a few of the files (1 to 3 out of the 50) begin loading but never complete. No errors are raised in ActionScript and there is no apparent pattern in which files fail to complete.
Has anybody run into situation before and found a cause and or fix to deal with these situations ?It's not too hard to write something that manually verifies if loaders stop loading and restart the loading process, but I was wondering if we're simply not listening to the right error events (right now we listen to progress, complete, and IOErrors) or if there are other solutions ?
I have an arbitrary number of images I want to load. I want to load them, wait until I get an Event.INIT for each, and only then proceed with the rest of the program. I know I can do that by having an Event.INIT listener update and check some count variable, but is that the standard approach? Is there a more elegant or AS-specific way?
When the content loads I display it. When the content fails to load I display a default message. This works locally fine. I can load the image or unplug my internet connection and get the default message. But on remote systems that I am testing, it seems like the Loader is timing out, and displays neither the content or the default message.
I made a test where I download a file using URLLoader - something like this:
[Code]....
in the middle of the downloading process I physically disconnect the internet connection. the download stalls - but after aproximately 30 seconds downloadSuccessful is invoked, although only half of the data was downloaded. how can I make sure that the data to be downloaded is complete and correct?
I am loading in binary files with the url class which can be quite large 10mb + and it works fine on my server but another server I am testing on it can sometimes not work. Sometimes it will not load the file and other times it will only load about 20% and it throw a complete event??? Then of course other times it works fine. This server is https maybe that has something to do this it?
if I have an event listerner (mouse, keyboard, enterframe,....event) that is being triggered, and when it finishes its event, something that is able to detect the finished event listener and fire out another sets of event.
It works more like MOTION_FINISH in TweenEvent, but it is only available for TweenEvent only, what if I want to detect a mousclick, keyboard, enterframe or even touch event?
What I am trying to do is build some kind of Loader-SWF that loads several animations (swf-files) and then plays them back one after the other.
What I am struggling with at the moment is how to find out when the first animation has finished and then switch to the second one. Since the Loader-Object I use to load the swf doesn't seem to dispatch a suitable event I thought I'd just do the following on the last frame of the animations I am loading:
Code: stage.dispatchEvent(new Event('nextClip')); and then have this in my "Loader":
This works fine when I just have my first animation clip dispatch the Custom Event, but as soon as I add the code to all the other animations it will throw an 1009 error (referring to the last frame of the newly added animation) as there somehow seems to be some confusion regarding what "stage" is referring to now.
I"m a bit confused because FlexUnith 4's behavior. When I use fail() in try-catch body fail method is just ignored.
[Code]....
I suppose this one should fail as there is no way around it, but it succeeds and turns green. Whatam I doing wrong? When i put fail() before try-catch block it fails as it is suposed to. BTW using Flash builder 4.
I've recently had a problem in my application's flow. I was sending an event from one of the frames of a movieclip and the issue was that it was being sent over and over and over when I wanted it to be sent only once. I assumed that placing a call to stop(); at the last frame of the clip would prevent it from looping. This was not the case however. After that I tried calling gotoAndStop(0); to reset the movieclip and stop it from looping. This did not work either. Then I went through my code to make sure nothing else was causing it to play.
I solved the problem by adding an extra frame to the end of the clip and calling gotoAndStop to that frame instead of 0. I've looked around the forums and google for information on this phenomenon but have only found cryptic answers. I was wondering if someone could explain the divine purpose that drives MovieClips to play regardless of whether they are told to stop or not when they get to frame 0 or 1.
Working on an mp3 player that i have cobbled together myself, bit rusty on the as3 so im sure it could be improved in many ways but the it works apart from that i cannot get the SOUND_COMPLETE event to fire at the end of a track, thus playing the next track. I have looked on this forum and others but cannot seem to get this to work
I have made my application in CS4 using as3.0. In my application there is one browse btn that upload image/picture on my application. It upload the image on Event.Complete event. This thing work in window's OS perfectly but in Mac it open a window on the click of browse but wont upload the image in my application.
I write a mouse_over event handler in a movieclip. But the event fired when the application run automatically even if the mouse out of the application.
How would I go about as to addEventListener for a array object. I'm trying to avoid running a timer every x milliseconds to check for new elements in array object, rather trying to make a event fire when new elements are detected to process them and remove them. Is it possible with Arrays? maybe ArrayCollections? either is fine.
I am looking for an event which is fired (if any) after a chart is rendered (visible in UI) in Flash, we are using Flex SDK 3.0. We have to capture the screenshot after the chart is rendered, current implementation adds a huge delay in update_complete event callback, this is slowing down the whole job of generating images. I tried to use EXIT_FRAME event, but this doesn't seem to serve the purpose.
What's happening is that the user fills out a form in the HTML Viewer, then when they click the submit button I want to be notified of the page change.
If they land on URL A, then they'll be shown one message. If they land on URL B, they'll be shown another.
I have run into an issue where when you use the onPress function, it won't register the second onPress event if the mouse doesn't move and the user clicks the same pixel. I have to use onPress, and am wondering if there is a way around this. It is just a little annoying that I have to move my mouse to have it catch that second onPress..
I have run into an issue where when you use the onPress function, it won't register the second onPress event if the mouse doesn't move and the user clicks the same pixel. I have to use onPress, and am wondering if there is a way around this. It is just a little annoying that I have to move my mouse to have it catch that second onPress...