Показать сообщение отдельно
Старый 20.10.2008, 17:33
Oreanor вне форума Посмотреть профиль Отправить личное сообщение для Oreanor Найти все сообщения от Oreanor
  № 1  
Ответить с цитированием
Oreanor

Регистрация: Sep 2004
Сообщений: 159
Отправить сообщение для Oreanor с помощью ICQ
По умолчанию почему getDefinition дает ошибку?

общий вопрос - swf1 из одного домена подгружает swf2 из другого домена с целью вытащить класс. но вместо этого вылетает ошибка:
Код:
SecurityError: Error #2119: Security sandbox violation: caller *swf1* cannot access LoaderInfo.applicationDomain owned by *swf2*.
	at flash.display::LoaderInfo/get applicationDomain()
	at loadtest_fla::MainTimeline/onLoadComplete()
если тестировать swf1 в локале, все работает нормально.

если подробнее, вот код swf1

Код:
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.Security;

Security.loadPolicyFile("http://*домен swf2*/crossdomain.xml");
Security.allowDomain(*домен swf2*);

var loaderContext:LoaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
var url:URLRequest = new URLRequest(*путь к swf2*);

var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
l.load(url,loaderContext);

function onLoadComplete(e:Event) {
	classFromSwf2 = e.target.applicationDomain.getDefinition("swf2class") as Class;

}
смущает больше всего то, что совсем недавно проблемы такой как будто не было. Что-то изменилось в политике безопасности? может, теперь нельзя вытащить класс из подгружаемого swf?


Последний раз редактировалось Oreanor; 20.10.2008 в 18:12.