Well if the .swf works on your local machine but not when uploaded to your server, the problem is almost always a pathing issue. If you use something like this in your .swf:
var menu:XML = new XML();
Remember that the path to the swf and the xml are relative to the location of the html page which on which you did the "embedding", not simply the relationship used during creation. That means that during testing of the sample show above, the xml had to be placed in a folder called "scripts", which was at the same level as the html page. If the .swf was also placed in there, then the path from the html page to the swf would be:
<param name="movie" value="scripts/menu.swf">
Unless you put the correct path to the xml in while you were doing development (the extra folder depth), it may just read
which would not load from an html page one folder level up. If the menu is duplicated in any subfolders, the relative address to the .swf and .xml will have to be changed to include the "../" up one level markup.
One way to test correct pathing, type the file name directly into your browser address bar.
If you can't download direct, address is wrong, file does not exist, of file is in wrong place. this will also work for the .xml file.