event.target.content.loaderInfo выдает ошибку, если я получаю доступ к изображению из внешнего домена (SecurityError: Ошибка #2123)

Я работаю над OSMF-плеером. Я добавил логотип в верхнем правом углу моего плеера. Теперь я хочу открыть ссылку на клик логотипа.

Я написал код сценария Action в событии клика onMain

КОД:

private function onMainClick(event:MouseEvent):void{

if(event.target.hasOwnProperty("content"))

                {

                    var info:LoaderInfo = event.target.content.loaderInfo;

                    var imageUrl:String = configuration.LogoImage;//Logo url to display on player

                    imageUrl = imageUrl.split("/").splice(1).join("/");

                     if(info.url.search(imageUrl) >= 0)
                     {

                        var url:String = configuration.LogoLink;//Logo link to open in new tab

                        var request:URLRequest = new URLRequest(url);

                        try

                        {

                            navigateToURL(request, '_blank');

                        }

                        catch(error:Error)

                        {

                            trace("Error occurred!");

                        }

                    }

                }

}

Когда я даю URL логотипа из того же домена, он работает нормально (данный URL откроется в новой вкладке). Проблема возникает при доступе к изображению из внешнего домена. Домен, который не поддерживает запрос от моего домена.

Дополнительная информация: Изображение логотипа правильно отображается в правом верхнем углу моего плеера. При клике по логотипу URL я получаю ошибку ниже. Я предоставляю URL логотипа из моего конфигурационного файла

SecurityError: Ошибка № 2123: нарушение изолированной программной среды: Loader.content: http:///release/XYZPlayer.swf не может получить доступ к http://www.esnipe.com/shared/help_icon.gif. Нет доступа к файлам политики.

at flash.display::Loader/get content()

at StrobeMediaPlayback/onMainClick()

Пожалуйста, кто-нибудь может помочь мне выйти из этой ошибки.

1 ответ

Решение

Нет http://www.esnipe.com/crossdomain.xml файла, который предоставляет доступ к загруженному контенту.

Существует обходной путь для доступа к загруженному изображению bitmapData ( загрузка изображений профиля на VK.com в ActionScript), но при просмотре вашего кода вам просто нужно запомнить URL загруженного изображения. Попробуйте сохранить его где-нибудь, например, в локальной переменной или расширить флеш Loader вашим пользовательским классом загрузчика и сохранить последний загруженный URLRequest объект в этом.

Пример:

public class LoaderExt extends Loader
{
    private var _request:URLRequest;

    public function get url():String{return _request ? _request.url : null}

    public function LoaderExt()
    {
        super();
    }

    override public function load(request:URLRequest, context:LoaderContext=null):void
    {
        _request = request;

        super.load(request, context);
    }
}
Другие вопросы по тегам