Как я фиксирую эту междоменную ошибку ActionScript 3?

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

UserHandler.GetUser.First.User.FirstName="Stefan"
UserHandler.GetUser.First.User.LastName="Karlsson"
UserHandler.GetUser.First.User.Age="39"
UserHandler.GetUser.First.User.Sex="Male"
UserHandler.GetUser.First.User.Occupation="Programmer"
UserHandler.GetUser.First.User.UserID="0"

тогда Вы, вероятно, нарушаете Закон

Demeter

6
задан Community 23 May 2017 в 11:53
поделиться

1 ответ

Я только что понял! Это действительно связано с командами Security.allowDomain в моем файле Flash. На самом деле я размещал test.html на поддомене domainone.com, и это сбивало его с толку. Это должно быть точное совпадение, субдомен и все такое. Оказывается, мне не нужна была команда Security.allowDomain , которая ссылалась на domaintwo.com, и мне не нужен был файл crossdomain.xml для Сценария 3!

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

import ajax.AjaxRequest;
try {
    var domain1:String = LoaderInfo(this.root.loaderInfo).parameters["allow"];
    if ( domain1.length > 0 ) {
        Security.allowDomain(domain1);
    }
} catch (error:Error) { }
try {
    var domain2:String = LoaderInfo(this.root.loaderInfo).parameters["allowhttps"];
    if ( domain2.length > 0 ) {
        Security.allowInsecureDomain(domain2);
    }
} catch (error:Error) { }
...

Затем, в JavaScript, который я использую для встраивания SWF в первую очередь, Я в основном беру текущий домен страницы из document.location.toString () , проверяю, использует ли он http или https, а затем передаю домен как allow и / или allowhttps в параметре flashvars. Возможно, существует «лучший» способ сделать это, который не полагается на явную настройку домена в переменных Flash (своего рода автоматическое обнаружение из Flash), но я недостаточно хорошо разбираюсь в ActionScript, чтобы понять, что вне. И поскольку этот файл уже выполняет целую кучу двунаправленной связи между JavaScript и ActionScript, это не так уж и важно. Мне достаточно этого решения.

а затем передайте домен как allow и / или allowhttps в параметре flashvars. Возможно, существует «лучший» способ сделать это, который не полагается на явную настройку домена в переменных Flash (своего рода автоматическое обнаружение из Flash), но я недостаточно хорошо разбираюсь в ActionScript, чтобы понять, что вне. И поскольку этот файл уже выполняет целую кучу двунаправленной связи между JavaScript и ActionScript, это не так уж важно. Мне достаточно этого решения.

а затем передайте домен как allow и / или allowhttps в параметре flashvars. Возможно, существует «лучший» способ сделать это, который не полагается на явную настройку домена в переменных Flash (своего рода автоматическое обнаружение из Flash), но я недостаточно хорошо разбираюсь в ActionScript, чтобы понять, что вне. И поскольку этот файл уже выполняет целую кучу двунаправленной связи между JavaScript и ActionScript, это не так уж и важно. Мне достаточно этого решения.

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

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

4
ответ дан 17 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: