2010-01-24 3 views

ответ

1

Я бы попробовал передать необходимую информацию в качестве flashvar. Не лучшее из ящика, которое я знаю, но оно будет работать.

Flash: FlashVars in AS3

+0

Единственная проблема с этой техникой - Flash может разбить некоторые URL-адреса на отдельные переменные. Это происходит с URL-адресом GET, то есть: * .com? One = 1 & two = 2. Так что имейте это в виду! –

+0

@TylerEgeto вы можете исправить это, закодировав URL с помощью специальных символов HTML – Tchakabam

0

я думаю, что его Возможное использование, внешний интерфейс сделать это с JavaScript window.location

15

Дайте этому идти:

import flash.external.ExternalInterface; 

var url:String = ExternalInterface.call("window.location.href.toString"); 
if (url) textfield.text = url; 

должен сделать трюк.

+0

, вы можете написать javascript внутри ActionScript без необходимости html. – atilkan

+0

Что делает toString? Это функция, добавленная Flash? – Eddie

2

Существует несколько способов решить эту проблему, однако все они связаны с использованием JavaScript для непосредственного запроса браузера.

Мой предпочтительный способ решить эту проблему - предоставить URL-адрес через свойство flashVar прямо из кода встраивания (лично я рекомендовал бы использовать SWFObject, чтобы сделать это проще); не забывайте, что вам понадобится URL-адрес. Кодируйте его, чтобы избежать проблем с разметкой.

var flashvars = { 
    browserURL: escape(location.href) 
}; 
swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf", flashvars); 

Теперь вы сможете получить доступ к Browser URL с помощью объекта LoaderInfo:

trace(stage.loaderInfo.parameters["browserURL"]); 

отмечает, что это будет работать только если у вас есть контроль над генерируемым HTML для SWF-файла - если пользователи собираюсь захватить SWF и написать собственный HTML-код для встраивания, это не сработает.

Если у вас нет контроля над встроенным HTML-флеш-памятью, вам необходимо получить флэш-запрос для запроса браузера во время выполнения с использованием класса ExternalInterface; другие люди предложили использовать «window.location.href.toString», однако это может оказаться проблематичным в IE6, я считаю следующие работы надежно во всех браузерах

const browserURL : String = ExternalInterface.call("eval", "window.location.href"); 

Обратите внимание, что для того, чтобы это работало, необходимо предоставить доступ JavaScript к вашему внезапному кино, это будет сделано, опять же, с помощью кода HTML вставлять и allowScriptAccess param

2
var url:String = loaderInfo.loaderURL; 

, кажется, работает тоже.

0

Я использовал вспышку в течение длительного времени и никогда не замечал этого. Он предоставляет домен только для обеспечения безопасности. Он также работает через загруженные swf. Не уверен в iframes.

Security.pageDomain 
Смежные вопросы