Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.12.2010, 22:18
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 1  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
По умолчанию Узнать текущий applicationDomain, да так, чтобы ах

Есть такой интересный момент. По идее текущий домен тянется через ApplicationDomain.currentDomain.
Но не даёт мне покоя очень давно одна тема здесь - ссылку не вспомню уже. И спрашивалось там - а как же узнать текущий домен? И весьма авторитетный человек ответил - new LocalConnection().domain.
Что я упустил?

Старый 03.12.2010, 22:27
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 2  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Я не совсем понял, о чем речь, но вот такая штука работает:

Код AS3:
private function onAddedToStage(e:Event) : void
{
	// Проверяем, на каком домене запустились
	var domain:String = new LocalConnection().domain;
	if (domain.indexOf("mail.ru")>-1) 
	{
		// Запускаемся в ММ
		startOnMM();
	} 
	else 
	{
		// Запускаемся на ВК
		startOnVK();
	}
 
}

Старый 03.12.2010, 22:51
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Блестяще... Мне необходимо перестать употреблять то что я употребляю, спасибо.

Раз уж зашла речь о домене - loaderInfo.url - откуда загрузили, а LocalConnection().domain даст то место, где флешка крутится?

Старый 03.12.2010, 23:24
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 4  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
domain свойство
domain:String [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: 1.0 9

Строка, представляющая домен расположения текущего SWF-файла.

В возвращенной строке SWF-файлов, опубликованных для проигрывателя Flash Player 9 или более поздних версий, в точности указывается домен текущего SWF-файла, включая субдомены. Например, если SWF-файл размещен на сайте www.adobe.com, то данная команда возвращает значение "www.adobe.com".

Если текущим SWF-файлом является локальный файл, размещенный на клиентском компьютере, то данная команда возвращает значение localhost.
http://help.adobe.com/ru_RU/AS3LCR/F...on.html#domain

Старый 03.12.2010, 23:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Хоть и не в тему. Речь тут про другие домены.
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
По идее текущий домен тянется через ApplicationDomain.currentDomain.
Кстати, нет.

ApplicationDomain.currentDomain - это геттер, возвращающий каждый раз новый экземпляр ApplicationDomain. Как они все могут быть текущими доменами - для меня остается загадкой.

Код AS3:
trace(ApplicationDomain.currentDomain);// [object ApplicationDomain]
trace(ApplicationDomain.currentDomain == ApplicationDomain.currentDomain);// false
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 04.12.2010, 00:02
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
я прочитал поняв свою ошибку )
Но непонятно, что есть размещен. Разместить можно на хтмл странице, а можно и на сервере.
Он значит откуда грузится или где показывается?

Добавлено через 14 минут
@dimarik: нет, очень в тему. Я что-то напутал ещё в далекой юности, думая что LocalConnection#domain даёт ApplicationDomain, а в голове спроецировалась дилемма - зачем дважды одно и то же. Я рад, что мы с этим разобрались )

По поводу копий ApplicationDomain`ов, мои мысли: наверное, адоуб совсем не хотели чтобы можно было испортить "реальную" domainMemory (надо бы потестить это в 9фп, когда её ещё не было), поэтому была сделана такая обёртка по геттеру. get/hasDefinition - это методы, причем скорее всего просто обёртки, которые дёргают статик методы/методы у экземпляра, ссылку на неё статикой, потому что по всей логике getDefinition от 2 currentDomain`ов даст один результат, т.е. на каком-то уровне это пересекается. Если вызвать RTE или по другому залезть в стек вызовов можно было бы сказать что-то поконкретнее - я не лазил, это всё лишь мои предположения.
Так что мой вердикт, ни на чем не основанный - защита domainMemory.

P.S вопрос про домен - откуда или где - ещё актуален =)


Последний раз редактировалось Psycho Tiger; 04.12.2010 в 00:18.
Старый 04.12.2010, 00:19
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Хтмл-страница открывается по определенному url'у.
new LocalConnection().domain содержит адрес этой страницы - это совершенно точно
если открываешь локально, там localhost

Что касается ApplicationDomain - то это просто разделы для загрузки контента. У меня был проект, в котором в основную флешку грузились несколько различных флешек. Чтобы не было конфликта, перед загрузкой каждой из них приходилось создавать свой собственный домен приложения, дочерний по отношений к основному. К доменным именам (url'ам) это не имеет никакого отношения.

Впрочем, тут все расписано:
http://help.adobe.com/ru_RU/ActionSc...0204-7e07.html


Последний раз редактировалось mikhailk; 04.12.2010 в 00:25.
Старый 04.12.2010, 00:29
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 8  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Что касается ApplicationDomain - то это просто разделы для загрузки контента. У меня был проект, в котором в основную флешку грузились несколько различных флешек. Чтобы не было конфликта, перед загрузкой каждой из них приходилось создавать свой собственный домен приложения, дочерний по отношений к основному. К доменным именам (url'ам) это не имеет никакого отношения.
Спасибо, я это прекрасно понял =)
Точнее, я это знал. Просто в мозгу что то переклинуло.
Цитата:
new LocalConnection().domain содержит адрес этой страницы - это совершенно точно
То есть загружая флешку с adobe.com на страницу yandex.ru domain выдаст мне yandex.ru, верно?

Старый 04.12.2010, 00:37
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 9  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
по идее, должно быть именно так.

Старый 04.12.2010, 00:45
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Дело в том, что loaderInfo.url показывает размещение флешки, а не там, где она крутится. Достаточно авторитетные люди говорили, что без ExternalInterface узнать действительно где её запустили нельзя (можно конечно сервер дёрнуть, но мы не о том). Размещена с английского hosted, т.е. скорее всего дело чуть хуже.
Кто нибудь знает точно?

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:20.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.