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

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

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

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
По умолчанию Проблема Interface и ApplicationDomain

Добрый день -

Недавно столкнулся с проблемой, что классы имплементирующие интерфейс,
загруженные с другого домена не воспринимаются главным приложением как таковые.

Например, имея класс в libs.swf:
( В библиотеке libs.fla имеется класс AchievementPanelGfx, у него проставлен base class -
gfx.base.AchievementPanelBase ).

Код AS3:
package gfx.base
{
	import flash.display.MovieClip;
	import flash.text.TextField;
 
	public class AchievementPanelBase extends MovieClipElementBase implements ISkinElement
	{
		public var tAchiName:TextField;
		public var buyB:MovieClip;
 
		function AchievementPanelBase( )
		{
 
		}
	}
}
Так вот, после загрузки главным приложением libs.swf, то получаем следующее
если libs.swf загружен с другого домена:

Код AS3:
var GfxClass:Class = getDefinitionByName( AchievementPanelGfx ) as Class;
var achiGfx:ISkinElement = new GfxClass();
trace( achiGfx ); // return is null
 
var a:* = new GfxClass();
trace( a is ISkinElement ); // returns false
 
trace( describeType( getDefinitionByName( GfxClass ) ) ); // содержит <implementsInterface type="gfx.base::ISkinElement"/>
При чём, если грузить libs.swf локально, то всё работает!

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Залейте обе флешки на сервер и потестите - по идее, должно начать работать. Вероятная причина в том, что несмотря на одинаковые названия, эти интерфейсы попадают в разные SecurityDomain'ы (основной - local, а загружаемый - remote). То есть для флеша это 2 разных интерфейса
__________________
...вселенская грусть

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

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Когда они обе на сервере, то всё работает. Но это не выносимо для работы, ибо в процессе разработке я компилю локально. Есть ли варианты устроить всё так, чтобы и локально всё работало так же как в вебе?

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
конечно есть - грузите с локала, кто мешает?
__________________
...вселенская грусть

Старый 20.05.2011, 14:50
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 5  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
gloomyBrain +1
Xpb7 была та же проблема, компилил локально а грузил с нета, не совпадали типы, пришлось все делать локально а потом просто в нет выкладывать, тогда феншуй, то есть если компилим локально то грузим локальные файлы, если флешка в нете то и грузит файлы оттуда же.

Старый 20.05.2011, 14:51
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 6  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
На самом деле этим костылём и пользуемся, просто хотелось бы более интеллигентное решение. То есть эти Security Domain-ы никак не обмануть совместить?

Старый 20.05.2011, 14:54
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Я в итоге остановился на варианте - работать с веб сервером на локальной машине. Т.как есть куча всевозможных вещей, которые не будут, или будут, но не совсем так работать с локальной файловой системой. И если проект планируется только для веба, это очень неудобно держать 2 конфигурации, из которых одна только для локального тестирования.
В итоге из разных серверов для имитации настоящего сервера остановился на Hunchentoot - т.как мне это ближе, но самое тривиальное решение для Windows - наверное IIS (есть шанс, что у вас уже установлен даже, нужно просто включить), или Apache - будет работать где угодно, не только в Windows.
__________________
Hell is the possibility of sanity

Старый 20.05.2011, 15:02
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 8  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Всем спасибо большое! Wvxvw, на досуге попробую разобраться как это всё поставить/настроить.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
это очень неудобно держать 2 конфигурации, из которых одна только для локального тестирования
Ну не знаю. Если собирать антом, то все собранное можно отгружать на FTP, при этом оставляя копию и на локале. + конфиги компиляции и дело в шляпе =)
По крайней мере у меня обычно не так много мест, в которых перечислены URL-адреса для загрузки ресурсов
__________________
...вселенская грусть

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Костылики можно прикрутить )
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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