hey, here's an update (and a fix) to this issue:
it looks like (as you pointed out) it is a bug in the new fp9 - this
code was added in to fix an issue in IE with streaming media... if
you were using flash media server to stream video, and left the page
while the video was playing, the audio would keep going. this only
happened in ie5 or 6 when you used innerHTML to insert the swf into
the page - something more and more people are now doing because of
the Eolas stuff.
so to fix this, you had to clear our all the functions that the flash
player inserted into the page, to allow IE to do proper cleanup on
the activex control.
I came up with a fix a few weeks back after discussing it a bit with
an adobe engineer, and my fix was very similar to this one (it was
integrated into SWFObject 1.4.2).
So naturally when fp9 came out, they wanted to include the fix with
it, and did, but apparently the code isn't all that great.
Anyway, long story short, we've been working on a fix today and I
just uploaded the new version of SWFObject to my SVN repository, and
it looks like it takes care of the problem. it basically just removes
the Adobe code that the player inserts and uses some custom code to
clean up the controls instead.
have a look, let me know if you have any problems with it:
I haven't made a tag for it yet, so just grab it from the trunk folder:
http://svn.deconcept.com/swfobject/trunk/
On Jul 5, 2006, at 12:47 AM, Alexis Glass wrote:
In absence of a response, I thought I'd post more results from my
investigation. Debugging IE's scripts, we come across the culprit
- ExternalInterface saves the previous unload handler and installs
its own. Its own unload handler calls the saved unload handler
after freeing up all its resources. Pity that it saves the
previous unload handler in a global variable so that if
ExternalInterface is initialized twice on one page it recursively
calls the __flash_savedUnloadHandler until IE complains about no
memory.
As Brad Neuberg wrote in his blog about ExternalInterface's broken
XML implementation (http://codinginparadise.org/weblog/
2006_02_03_archive.html), "In general, whoever coded
ExternalInterface should be fired. " Well, or whoever signed off
on it :( On the up side, I guess it should be possible (if not
exactly future-proof) to overwrite the default
__flash_unloadHandler behaviour.
---
function __flash_unloadHandler() {
myflash_object.style.display = 'none';
for (var prop in myflash_object) {
if (typeof(myflash_object[prop]) == "function") {
myflash_object[prop]=null;
}
}
if (__flash_savedUnloadHandler != null) {
__flash_savedUnloadHandler();
}
}
function __flash_setupUnloadHandler() {
if (window.onunload != __flash_unloadHandler) {
__flash_savedUnloadHandler = window.onunload;
window.onunload = __flash_unloadHandler;
}
}
--
Alexis Glass wrote:
I have two entirely separate SWFs on a page, both using
ExternalInterface to interface with my JavaScript. Things seemed
just fine under Firefoxi, but under IE I get an "Out of memory at
line: 56" error following a really long delay when the page is
unloaded as I try to navigate to another page. This only happens
when both SWFs are displayed on the page at the same time. They
both have different IDs set in their object tags and are realized
from entirely separate SWFs, so I don't see why there should be
any conflict by including both on one page...
I don't seem to be the only person to have encountered this
problem (http://blog.deconcept.com/2006/05/18/flash-player-bug-
streaming-content-innerhtml-ie/ ), but I haven't been able to find
a solution mentioned anywhere. Has anyone else encountered this
problem -- or, better yet, found a solution?
Thanks (fingers crossed)
Alexis
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com