![]() |
Узнать текущий applicationDomain, да так, чтобы ах
Есть такой интересный момент. По идее текущий домен тянется через ApplicationDomain.currentDomain.
Но не даёт мне покоя очень давно одна тема здесь - ссылку не вспомню уже. И спрашивалось там - а как же узнать текущий домен? И весьма авторитетный человек ответил - new LocalConnection().domain. Что я упустил? |
Я не совсем понял, о чем речь, но вот такая штука работает:
Код AS3:
|
Блестяще... Мне необходимо перестать употреблять то что я употребляю, спасибо.
Раз уж зашла речь о домене - loaderInfo.url - откуда загрузили, а LocalConnection().domain даст то место, где флешка крутится? |
Цитата:
|
Хоть и не в тему. Речь тут про другие домены.
Цитата:
ApplicationDomain.currentDomain - это геттер, возвращающий каждый раз новый экземпляр ApplicationDomain. Как они все могут быть текущими доменами - для меня остается загадкой. Код AS3:
|
я прочитал поняв свою ошибку )
Но непонятно, что есть размещен. Разместить можно на хтмл странице, а можно и на сервере. Он значит откуда грузится или где показывается? Добавлено через 14 минут @dimarik: нет, очень в тему. Я что-то напутал ещё в далекой юности, думая что LocalConnection#domain даёт ApplicationDomain, а в голове спроецировалась дилемма - зачем дважды одно и то же. Я рад, что мы с этим разобрались ) По поводу копий ApplicationDomain`ов, мои мысли: наверное, адоуб совсем не хотели чтобы можно было испортить "реальную" domainMemory (надо бы потестить это в 9фп, когда её ещё не было), поэтому была сделана такая обёртка по геттеру. get/hasDefinition - это методы, причем скорее всего просто обёртки, которые дёргают статик методы/методы у экземпляра, ссылку на неё статикой, потому что по всей логике getDefinition от 2 currentDomain`ов даст один результат, т.е. на каком-то уровне это пересекается. Если вызвать RTE или по другому залезть в стек вызовов можно было бы сказать что-то поконкретнее - я не лазил, это всё лишь мои предположения. Так что мой вердикт, ни на чем не основанный - защита domainMemory. P.S вопрос про домен - откуда или где - ещё актуален =) |
Хтмл-страница открывается по определенному url'у.
new LocalConnection().domain содержит адрес этой страницы - это совершенно точно если открываешь локально, там localhost Что касается ApplicationDomain - то это просто разделы для загрузки контента. У меня был проект, в котором в основную флешку грузились несколько различных флешек. Чтобы не было конфликта, перед загрузкой каждой из них приходилось создавать свой собственный домен приложения, дочерний по отношений к основному. К доменным именам (url'ам) это не имеет никакого отношения. Впрочем, тут все расписано: http://help.adobe.com/ru_RU/ActionSc...0204-7e07.html |
Цитата:
Точнее, я это знал. Просто в мозгу что то переклинуло. Цитата:
|
по идее, должно быть именно так.
|
Дело в том, что loaderInfo.url показывает размещение флешки, а не там, где она крутится. Достаточно авторитетные люди говорили, что без ExternalInterface узнать действительно где её запустили нельзя (можно конечно сервер дёрнуть, но мы не о том). Размещена с английского hosted, т.е. скорее всего дело чуть хуже.
Кто нибудь знает точно? |
:)
вот код: Код AS3:
http://mikhailk.ru/testing/testdomain/ вывод: new LocalConnection().domain: mikhailk.ru а вот открытие той же страницы по внутреннему адресу хостера: http://z123325.infobox.ru/testing/testdomain/ вывод: new LocalConnection().domain: z123325.infobox.ru PS. Если открывать с www в начале, будет еще два варианта: new LocalConnection().domain: www.mikhailk.ru new LocalConnection().domain: www.z123325.infobox.ru |
Это очень здорово!
Спасибо большое за тест. |
А возможно получить не имя домена, а полный путь?
Цитата:
|
Если расположение флешки такое же, как откуда она грузится - то loaderInfo.url. Иначе - JS из ExternalInterface.
|
| Часовой пояс GMT +4, время: 19:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.