Flash Player behaviour when lost focus - actionscript-3

I've got a real problem with FlashPlayer. What I need is to have it working on full speed when it is in the THROTTLE mode - that means when FlashPlayer loose its focus and decrease framerate to about 4fps. This is commonly know as a feature for mobile phones or when you change a tab in your browser and your .swf movie doesn't run with full speed anymore.
I need this full speed because we run tests with flash swfs on virtual servers, and unfortunatelly tests run very long.
I found that in FP11.2 was ThrottleEvent introduced that inform you what Flash Player is doing. It can go to PAUSE, THROTTLE, or RESUME state. Unfortunatelly it seems that I can't force other stage.frameRate when it really goes into any of these states. I tried also with Event.DEACTIVATE, and Event.ACTIVATE without any results.
Can I go around this any way? Or if not, what version of FlashPlayer was the latest before Adobe incorporated this feature into FP?
Thanks for any response!
Kindest Pawel

you should try
stage.addEventListener(ThrottleEvent.THROTTLE, doStuff)

Related

Weird flash player glitch (12.0.0.41) in Chrome only

Very recently, after the latest Chrome update which includes Adobe Flash Player Version: 12.0.0.41, a flash app that's been running smoothly for years has begun to "hiccup" during one particular function.
Normal behavior - User logs in to app. App grabs some xml files then draws a calendar onscreen.
Hiccup behavior - User logs in to app. App grabs the xml files but feezes before executing the loadComplete function (according to trace). By freezes, I mean the little load spinner remains onscreen but stops spinning and the calendar doesn't appear onscreen.
Interesting/maddening notes - The mouse cursor responds as if the calendar has been drawn (arrow changes to pointer when mouse passes over an invisible calendar day) but according to my trace log the loadComplete and showCal functions haven't fired.
ALSO, any call to a function unfreezes the glitch (e.g. clicking an invisible calendar day, mousingOver a control button, etc. Anything that triggers a function.) and bam! everything's there and the trace log completes as it should.
As stated, this glitch only occurs in Chrome with the latest Flash Player update (12,0,0,41).
Installing the mozilla version of the flash player debugger (12,0,0,43) and instructing chrome to use it instead fixes the glitch, but using it in chrome opens up a whole new can of worms when it comes to flash player glitches (as is to be expected).
Maybe there's nothing I can do and it's just a fault with the latest Chrome flash player build, OR...
There's something fundamentally wrong with my code and Chrome's latest flash player is the only plugin that glitches on my "wrong" code?
I'll happily include some code snippets if someone is convinced my code is the problem but am leaving them off for now since this question is enormous. (you're a trooper for sticking with it)
I'm hoping someone else has experienced this or can at least explain it/fix it. Thanks in advance.
I'm seeing very similar symptoms on an application I work on Frankenscarf. All workarounds have been ineffective thus far. I can confirm it is specific to 12.0.0.41 Pepper Flash. I think you might need to wait for google to fix the lasted release...
I am also having problems with Flash 12.0.0.41 on YouTube, videos very laggy and dropping frames all the time even making the video stutter on 320p. I have disabled Chromes built in Flash player though Chrome://plugins, installed Chrome 11.7.700.260 and now have the videos running smoothly even at 1440p. Hopefully they will sort out the bugs soon.
I wasn't able to edit my original post...
UPDATE: I managed to get a workaround going. I set up a periodic timer (triggering every 500ms), that calls invalidateDisplayList() in my largest container. It is horrible, but it works....

Flash Audio Lag in Google Chrome

I'm currently working on a flash game and, at least on my machine, the audio seems to lag by a fraction of a second in Chrome, but not in IE or FF. This isn't a huge deal, the game is still playable, but it's a little bit annoying. Is there anything I can do from a development standpoint to fix this issue or is it something the user would have to fix?
Edit: I've now tested it on two other machines and the same thing happened. The audio is delayed in chrome but not Firefox or IE.
Edit 2: I've also tried the same thing in a few popular games on Newgrounds to the same effect. Is this just something wrong with Chrome?
Edit 3: I tried lowering the bit rate of the audio from 44kHz to 22 and it didn't do anything to fix it. (It also sounded terrible, predictably)
Edit 4: To prove it's not a memory management problem I created a blank SWF that just plays an audio file on mouse click, it also has the lag issue. This is definitely not a Flash or AS3 isolated issue.
I have/had the same problem with Chrome.
if you go to: chrome://plugins (->details) and disable PepperFlash, then it runs smooth. Not sure if Pepper is the default for Chrome, or if its the particular version of flash we installed.
C:\Users\ [USERNAME] \AppData\Local\Google\Chrome\Application\21.0.1180.75\PepperFlash\pepflashplayer.dll
I had an intermittent audio and then the video started to lag. The solution was two fold:
Re-install chrome.
Get the latest Adobe Flash Player.
I had to do both things for it work properly. To get the plugins type the following in chrome address bar: chrome://plugins
After you install the latest player you need to disable the older one.
Hope this resolves your problem as it did for me.

How to continue a SWF rendering whilst off screen?

I need to be able to continue rendering a SWF file whilst it is off screen or minimized. Taken from the adobe website: "This is an automatic feature in Flash Player since version 10.1. Flash Player minimizes processing when SWF content goes off-screen."
I have extensively searched around for a solution on this. One solution suggested was to use the HTML parameter "hasPriority" and set it to true which will ensure some things are not paused. SWF content will stop rendering regardless of this when off screen or hidden.
Does anyone know if it is possible to disable this automatic feature so my SWF will continue to render off screen?
Thanks in advance for any help.
The flash virtual machine is specifically designed so that, while viewing flash in the browser, the VM is paused when the instance of the player loses window focus. This is necessary functionality in order to... well.. keep flash from utterly destroying your computer, forcing it catch ablaze and send it to the computer underworld. Just imagine what would happen if you had 3-4 flash sites open and rendering off screen on your tablet. It would die a horrible death. You cannot override this functionality.

as3: why cursor won't hide?

I've tried everything... it won't hide.
Obviously tried Mouse.hide()
tried different player versions (10.2, 10.3, 11)
tried Mouse.hide() everytime there is a mouse event on the stage
tried compiling to swf, projector, debug player...
I'm on Mac OS Lion, and I suspect this is the problem, but I'm not sure. As I can't try on another machine. Never had this problem until I upgraded to Lion and CS5.5 at the same time.
I'm out of ideas...
I'm compiling with Flash IDE CS5.5 version 11.5.1.
Any idea is appreciated.
TIA
Update: in fact the only way to hide the cursor is to switch to another application and then come back to the flash projector.
Try setting your wmode option to window when embedding the swf.
So I came back to this problem after some time and the solution in my particular case was this.
Mouse.show();
Mouse.hide();
It works with the projector player 11.1 in Mac Os 10.7.3.
This bug still exists but I've run across a workaround. This problem only shows up if the application is set up to start in full screen.
Without fullscreen mode on Flash Player the cursor will go away with
Mouse.hide();
Then in Flash Player, select Full Screen from the menu.
Sometimes it takes a couple of times.
In a pinch, this was a very useful discovery, although it is by no means an acceptable workaround for all occasions.
I'm using Flash Player 14 on OSX

do html5 audio tags eat up resources

I have pages where i need to play dozens of small audio file when the user clicks on things. Responsiveness is very important.
I'm thinking of using one for each file, and preloading the audio files. Is this the a reasonible approach?
Thanks.
What I experience using SoundManager2 (audio Javascript lib) is that Chrome nor Firefox have no issues loading and playing multiple (100+) sounds through their Html5 capabilities
(Firefox must play OGG though)
With IE9 it's a different story. Looks like it has a limit to load and play no more than 40 sounds. :-(
As, the game we develop requires constantly to have 50+ sounds played within 1 minute period, we have to fallback to Flash for playing sounds on IE9.. luckily SM2 does it too
I also confirm this behaviour with html5 mode using jPlayer. I'm only able to create 40 instances of jPlayer. Each can preload and play sound that it defines.
41st and following instances will fail with an error on IE9/Windows7
Error: "Media URL could not be loaded"
It's reasonable, and probably the correct solution. I recently wrote a demo application (http://www.soundscribe.com) that makes heavy use of individual (and simultaneous) audio clips in HTML5. IE9 and FF3/4 handle it well. Chrome has some issues that seem to be specifically related to simultaneous playback (which probably won't apply to your app). The biggest block I hit was in IE9, which seems to have a mysterious limit on the number of audio objects that can exist at once. The max is about 40, after which IE9 will silently fail to download the file. FF and Chrome both try to support an unlimited number.
The alternative approach of putting all the audio in a single file and changing the offset to play is a bad choice for several reasons. It's much more complicated to code, you need to keep up with additional metadata (where does the clip start, how long is it), and it's likely to work slightly different between browsers. And the worst part, there's really no way to know when your clip is fully loaded. You can only tell when the clip "can play through", which is determined by the browser based on the size of the audio file and the current download rate. This means that even after the browser reports the audio clip is ready, you may not be able to play a clip somewhere near the end.
It seems like a reasonable approach. However you need to consider a couple of things.
Each sound clip will need to be held in memory. While this is will not matter for most cases, users with a lot of tabs open, multiple programs open or old computers may get slow down on their computer. Especially if the sound files are large.
From a usability point of view, if I hear a sound every time a click a button on the site, I'll leave immediately