Что объект Flash знает о странице, на которой он находится? - PullRequest
1 голос
/ 11 февраля 2009

Организация, в которой я работаю, создала небольшой флеш-виджет, который мы рекомендуем сторонникам размещать на их веб-сайте. Я пытаюсь определить, есть ли способы улучшить статистику, которую мы получаем из этих встроенных виджетов.

В основном я хотел бы получить домен сайта, который загрузил виджет. Прямо сейчас я могу видеть реферера в журналах сервера, но он включает в себя полный URL, и я не хочу писать свою собственную систему обработки журналов только для извлечения доменов.

Я очень мало знаю ActionScript, но я просмотрел документацию по ActionScript, чтобы посмотреть, смогу ли я найти очевидное решение. Я не нашел ничего, что позволяло бы объекту запрашивать в браузере URL страницы. Класс System.Capabilities, похоже, предоставляет много информации об окружающей среде игрока, но не о том, откуда был вызван игрок (насколько я могу судить, но, возможно, я что-то упускаю).

Ответы [ 3 ]

2 голосов
/ 11 февраля 2009
Steps:
   1. Import external interface into your file: import flash.external.ExternalInterface;
   2. Initialize a variable to store the url path: var urlPath;
   3. Create a function to call external interface and assign the html page path to your variable: urlPath = ExternalInterface.call(”window.location.href.toString”);
   4. Call the function when/if needed.

Пример:

С помощью javascript: window.location.href или window.location.href.toString (); С actioncript: ExternalInterface.call (”window.location.href.toString”); Пример внешнего интерфейса html

Источник: http://blog.circlecube.com/2008/01/02/get-current-url-to-flash-swf-using-an-external-interface-call/

Чтобы получить строку запроса, см. Эту статью: http://blog.circlecube.com/2008/03/20/get-current-url-and-query-string-parameters-to-flash-tutorial/

1 голос
/ 11 февраля 2009

Да, вы можете получить реферера (или что-нибудь еще из DOM по этому вопросу). Напишите небольшие фрагменты javascript, которые захватывают эту информацию, и используйте ExternalInterface, чтобы внедрить эти фрагменты в страницу javascript. Затем вы можете сделать ExternalInterface.call ("eval", "myfunction") и заставить эти методы javascript возвращать данные во флэш-память.

0 голосов
/ 11 февраля 2009

MochiBot - это служба, которая делает именно это, вы можете использовать их службу (она бесплатна) или посмотреть код, который они используют (это класс ~ 40 строк). Это все доступно с их сайта.

Беглый взгляд на их код показывает, что большая часть того, что они отправляют, это два:

Security.sandboxType;
Capabilities.version;
...