У меня есть флеш-ролик с использованием ActionScript 3 с некоторыми кнопками, открывающими ссылки на новые страницы. Вот код, который у меня есть для перенаправления на новую страницу:
myButton.addEventListener(MouseEvent.CLICK, function(e:MounseEvent) {
var request:URLRequest = new URLRequest('http://www.example.com/page2.html');
navigateToURL(request, "_top");
});
Он отлично работает на моем производственном сервере с полным URL-адресом, включая домен, но когда я меняю его на это:
var request:URLRequest = new URLRequest('page2.html');
он больше не работает в производстве. Что мне здесь не хватает? Мне бы хотелось, чтобы в фильме не закодировался весь URL.
Ответ 1 · рейтинг 11 · Cay
URLRequests относятся к HTML-файлу, содержащему их (не имеет значения, где находится ваш SWF-файл), поэтому вы должны это учитывать. Существует необязательный атрибут EMBED / OBJECT, который вы можете установить, чтобы изменить это поведение, см. Здесь:
база -. или [базовый каталог] или [URL]. Задает базовый каталог или URL-адрес, используемый для разрешения всех операторов относительного пути в фильме Flash Player. Этот атрибут полезен, когда ваши фильмы Flash Player хранятся в другом каталоге, чем другие ваши файлы.
http://kb2.adobe.com/cps/127/tn_12701.html
РЕДАКТИРОВАТЬ: Кроме того, старайтесь избегать использования абсолютных URL-адресов для относительных файлов, так как вы можете получить ошибки песочницы, например, при загрузке Интернета без www. ...
Ответ 3 · рейтинг 1 · M. Ryan
/page2.html должен работать нормально, как предложил Крис.
Кроме того, я часто делаю для больших проектов с большим количеством URL-адресов просто создаю набор функций глобальных ссылок, между которыми я могу переключаться в различных средах запуска.
Там, где я работаю, у нас есть как минимум 4 или 5 различных сред между производственной, промежуточной и различными средами тестирования, и иногда необходимо настроить URL-адреса (например, если источник данных находится на этапе подготовки, а не в производстве).
Поэтому я бы сделал функцию высокого уровня, например
MakeURL ()
Который я бы скармливал строке базовой страницы, такой как "page2.html", а функция MakeURL анализировала бы префикс URL-адреса, такой как http://staging.site.com или http://alpha.site.com.
Таким образом, если бы мне пришлось, я мог быстро изменить каждую ссылку в приложении.
Теперь вам редко нужно помещать туда весь URL-адрес, если вы не работаете с несколькими и разнообразными средами. Обычно /page2.html будет работать, но иногда я использую эту функцию как средство защиты от сбоев.