Simon.
Ok, I can see what is happening now. Can I verify that it also works for you in IE, but not in Firefox / Safari etc?
I can get it to behave if I use firebug to modify some CSS positional settings for the iframe in FF, so it is definitely CSS related. As the swf is published at 100% w/h, there needs to be a bit of extra CSS added in order for things to display correctly. See FAQ #1:
http://code.google.com/p/swfobject/wiki/faq
Also, is there any reason you are using the createCSS() method through SWFObject rather than just defining a normal CSS declaration?
After poking around a bit in the differences in the generated code between IE and FF, and could see that FF was missing the CSS required for it's absolute positioning, so I added the CSS declaration for #myFrame (as seen in IE) to the page.
All is working now, and tested in IE7/8, FF3, Safari 4 and Chrome.
See example here:
I am sure you can remove a lot of the CSS declarations from #myFrame, but I will leave that up to you to experiment with. I think the only important ones are:
POSITION: absolute; TOP: 30px; LEFT: 10px;
Looking through IFrame.as, it looks like the moveIFrame() function may not be getting called at the right time? Maybe you could try experimenting if calling moveIFrame() from your Flex app (with a button press etc) after init actually resolves it.
Another solution is to strip out the create/hide/move js functions from Flex injecting them into the DOM invisibly and just declare them on the page or a seperate js file. This way you can call them from the hosting page when you like and "fix" any issues.
Anyhow, you have aw solution if your app is fixed to the top left of the browser window...
Aran