FileReference, скажем, довольно странно, как он работает с относительными путями.В большинстве случаев базовый путь - это путь, с которого был загружен SWF.За исключением IE (или это было наоборот? Я не могу вспомнить прямо сейчас).Я думаю, что это не проблема IE / Firefox / chrmoe, а проблема игрока.Для IE есть флэш-плеер, который использует ActiveX, и плеер для остальных браузеров.В какой-то момент они расходятся в том, как они обрабатывают относительные пути для объектов FileReference.Если это особенность, это довольно глупо, так что я чувствую, что это ошибка, но я не проверил базу ошибок, поэтому я не уверен, официально ли это считается ошибкой или нет.Кроме того, установка base_path в коде встраивания не работает.
В любом случае, единственный разумный способ избежать этого безумия - использовать полный путь.Попытка определить, будет ли это IE или нет, вероятно, будет работать, но я думаю, что в какой-то момент это раздражение будет исправлено;и когда это произойдет, ваш код сломается, так что я думаю, что это плохая идея.
Теперь вы, вероятно, не захотите жестко задавать полный путь в своем SWF, так что простое решение, которое я использовал дляЧтобы обойти эту проблему (при условии, что вы можете изменить код для встраивания), этот путь передается через flash var, когда вы встраиваете свой SWF.Как правило, я получаю этот путь с помощью php, поэтому мне не нужно вручную изменять его при развертывании или перемещении материала (я передаю абсолютный путь в «корень приложения», который для меня обычно представляет собой HTML-код, который встраиваетSWF; затем я объединяю это с относительным путем, где живет файл, который обрабатывает сообщение, так что для вашего SWF это все равно, что использовать относительный путь в пути).
Итак, если вы можете использовать какую-то часть сервера, вы можете просто написать этот маленький кусочек кода один раз и забыть об этом.Но даже если вы сделаете это вручную, это будет легче поддерживать, чем перекомпилировать ваш swf.