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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.03.2013, 19:11
bookworm вне форума Посмотреть профиль Отправить личное сообщение для bookworm Найти все сообщения от bookworm
  № 1  
Ответить с цитированием
bookworm

Регистрация: Sep 2001
Адрес: Россия, Москва
Сообщений: 67
По умолчанию Статический класс и ApplicationDomain

Подскажите пожалуйста, запутался...
Если я в родительской SWF подгружаю дочернюю SWF вызывая Loader.load(new URLRequest(url:String), null), то у меня SWF-ки будут в разных доменах?
И соответственно с разными наборами определений классов.
А как это влияет на статические члены классов? Т.е. обращение к ним из дочерней и родительской - различны?
Вроде бы, раз домены различны, то и классы могут быть описаны по-разному.
С другой стороны - вижу, что доступ одинаков (правда и класс со статикой тоже один и тот же в обоих SWF).
В документации не нашел ничего по этому поводу пока...

Добавлено через 17 часов 49 минут
Нашел. Тему можно похерить

Старый 12.03.2013, 13:07
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 2  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
http://help.adobe.com/ru_RU/as3/dev/...1d8f-8000.html
Если загружать как Вы, все классы остаются в своем домене и это значит, что они никак не перемешиваются с SWF, которой вы загружаете. ("родительская" и "дочерняя" тут совсем не к месту).
Чтобы достать статические члены и функции, нужно будет поступать точно так же, как и не статическими классами. Т.е., сначала достать класс через getDefintionName() и потом обращаться как CLASS.staticFunction() или CLASS.staticMember

Старый 12.03.2013, 14:07
bookworm вне форума Посмотреть профиль Отправить личное сообщение для bookworm Найти все сообщения от bookworm
  № 3  
Ответить с цитированием
bookworm

Регистрация: Sep 2001
Адрес: Россия, Москва
Сообщений: 67
Я ошибся, полагая, что Loader.load(new URLRequest(url:String), null) - это самостоятельные домены для каждой загруженной. На самом деле - так, но с учетом того, что родительский домен будет соответствовать домену родительской SWF.

Т.е. это тоже самое что
1. Loader.load(new URLRequest(url:String), new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain)))
Это как раз тот случай, про который вы говорите. Дочерняя SWF получит доступ к классам родительской через getDefintionName(). А если я определяю класс и там и там, то будет использоваться родительский в дочерней SWF. Поэтому статика и работает.

А полностью самостоятельный домен для дочерней SWF - это:
2. Loader.load(new URLRequest(url:String), new LoaderContext(false, new ApplicationDomain()))
А вот тут через getDefintionName() не добраться.

Ну и соответственно в общий домен, это:

3. Loader.load(new URLRequest(url:String), new LoaderContext(false, ApplicationDomain.currentDomain))

Но странно! В случае 1 память освобождается от определений классов, а вот в случае 2 (отдельный домен без родителя) - судя по мониторингу - нет! Почему же?! Отдельный же домен вообще.

Старый 12.03.2013, 14:09
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
http://www.flasher.ru/forum/showthread.php?t=184935
__________________
тут я

Старый 12.03.2013, 19:43
bookworm вне форума Посмотреть профиль Отправить личное сообщение для bookworm Найти все сообщения от bookworm
  № 5  
Ответить с цитированием
bookworm

Регистрация: Sep 2001
Адрес: Россия, Москва
Сообщений: 67
Хм. Так вы там сравниваете варианты 1 и 3, которые у меня.
Почему у 3 не выгружается - вроде бы ясно.
Почему у 1 выгружается - тоже
Но почему у 2 - не выгружается?! Это же совсем изолированный вариант!

Добавлено через 35 секунд
Перечитаю еще раз, может я не понял...

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

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

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


 


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


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