in my flex .swf file I check for "#/1" at the end of the URL in the browser address box (and if its present, use a local Flex SharedObject to restore a previous state). if "#/1" is not present, I call SWFAddress.setValue("1") which has the effect of appending "#/1" on the end of the URL in the browser address box, if that top level URL is also the url of the html page containing my .swf file.
My problem occurs when the html file containing the swf is in a frame, in which case calling SWFAddress.setValue("1") replaces the top level URL in the browser address box with the URL of this frame page (and then appends the "#/1" on the end of that), which then makes this frame page the top level, wiping out all the other frames. But I just want to append "#/1" on the end of whichever top level url address happens to be in the browser address box (not replace its entire content with the url of the frame page containing the swf.
Hopefully that's succinct enough in case anyone has a solution.