Ошибка Flash - нарушение безопасности Sandbox - при интеграции Gigya во Flash - PullRequest
0 голосов
/ 29 августа 2011

Я работаю над существующим проектом Flash (игра на основе Flash), где мне нужно интегрировать социальный виджет входа в систему Gigya.Я исследовал и доработал с помощью Adobe Flash Platform Services Social.

Проблема в том, что я успешно интегрировал это в тестовый файл Flash, который я изначально подготовил.Но когда я интегрирую его в исходный файл моего настоящего проекта Flash, я получаю следующую ошибку:

*** Security Sandbox Violation ***

SecurityDomain 'http://cdn.gigya.com/wildfire/WFApi.ashx?f=gs&asver=as3&service=socialize&enabledProviders=facebook%2Ctwitter%2Cyahoo%2Cmessenger%2Cgoogle%2Clinkedin%2Cmyspace%2Caol%2Corkut%2Cwordpress&services=socialize&APIKey=[---myApiKey---]' tried to access incompatible context 'file:///D|/FlashProjects/game.swf'

SecurityError: Error #2070: Security sandbox violation: caller http://cdn.gigya.com/wildfire/WFApi.ashx?f=gs&asver=as3&service=socialize&enabledProviders=facebook%2Ctwitter%2Cyahoo%2Cmessenger%2Cgoogle%2Clinkedin%2Cmyspace%2Caol%2Corkut%2Cwordpress&services=socialize&APIKey=[---myApiKey---] cannot access Stage owned by file:///D|/FlashProjects/game.swf.

at flash.display::Stage/requireOwnerPermissions()
at flash.display::Stage/addEventListener()
at com.Gigya.Lib::FixFocusManagerBugs/addFocusInAndOutHandlers()
at com.Gigya.Lib::FixFocusManagerBugs/onUiTopElementAddedToStage()
at flash.display::DisplayObjectContainer/addChild()
at com.Gigya.Apps.Socialize.Common::BaseForm()
at com.Gigya.Apps.Socialize.Login.Forms::MiniLogin()
at com.Gigya.Apps.Socialize.Login::LoginApp/showLoginUI()
at com.Gigya.Lib::ExternalClassLoader/onSwfLoaded()
at com.Gigya.Lib::ExternalClassLoader/ecl_INIT()

Обратите внимание, что я также включил Security.allowDomain ("cdn.gigya.com");в моем коде, но он работает в моем первоначальном тесте Flash (минимальный файл с 2 кадрами и без дополнительных компонентов), но, похоже, не работает для моей реальной игры Flash.

Кто-нибудь сталкивался с такой ошибкой?

Пожалуйста, помогите мне.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

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

До сих пор не уверен, как возникла проблема, но теперь она больше не возникает:)

0 голосов
/ 29 августа 2011

Я предполагаю, что вы загружаете SWF, и что SWF должен получить доступ к стадии загрузчика (игры)? В этом случае попробуйте указать, что они находятся в одном домене приложений и безопасности при загрузке:

var loader : Loader;
var context : LoaderContext;

context = new LoaderContext(true, ApplicationDomain.currentDomain,
                                    SecurityDomain.currentDomain);    

loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoaderComplete);
loader.load(new URLRequest(url), context);

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

...