AS3 URLRequest не работает в браузере

Мой URL-запрос отлично работает во Flash Pro, но когда я тестирую его в браузере, изображение вообще не работает. Не загружается. Есть ли параметр публикации, который мне нужно использовать, или что-то в этом роде?

Пожалуйста, помогите, это довольно неприятно. Вот, как это выглядит, когда он находится в браузер.

Соответствующий код:

    public function startSlidingPuzzle() {
        // blank spot is the bottom right
        blankPoint = new Point(numPiecesHoriz-1,numPiecesVert-1);

        // load the bitmap
        loadBitmap("http://fc07.deviantart.net/fs71/f/2014/030/d/7/slidingimage_by_nooodisaster-d74et6t.jpg");
    }

    // get the bitmap from an external source
    public function loadBitmap(bitmapFile:String) {
        var loader:Loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingDone);
        var request:URLRequest = new URLRequest(bitmapFile);
        loader.load(request);
    }

    // bitmap done loading, cut into pieces
    public function loadingDone(event:Event):void {
        // create new image to hold loaded bitmap
        var image:Bitmap = Bitmap(event.target.loader.content);
        pieceWidth = image.width/numPiecesHoriz;
        pieceHeight = image.height/numPiecesVert;

        trace(numPiecesHoriz)

        // cut into puzzle pieces
        makePuzzlePieces(image.bitmapData);

        // shuffle them
        shufflePuzzlePieces();
    }

person user3255395    schedule 30.01.2014    source источник
comment
Flash не может загружать данные с веб-сервера, отличного от того, на котором он размещен, если на целевом сервере не действует действующая междоменная политика. Подробнее: - adobe.com/devnet/flashplayer/articles/cross_domain_policy.html < / а>   -  person net.uk.sweet    schedule 31.01.2014


Ответы (1)


У вас ошибка безопасности:

SecurityError: Error #2122: Security sandbox violation: Loader.content: http://fc03.deviantart.net/fs71/f/2014/030/e/e/beyonce_slidingpuzzle___flash_diary_day_10_by_nooodisaster-d74er8h.swf cannot access http://i.stack.imgur.com/ls9QI.jpg. A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.
at flash.display::Loader/get content()
at SlidingPuzzle/loadingDone()

Попробуйте добавить контекст безопасности:

public function loadBitmap(bitmapFile:String)
{
    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingDone);

    var context:LoaderContext = new LoaderContext();
    context.applicationDomain = ApplicationDomain.currentDomain;
    context.securityDomain = SecurityDomain.currentDomain;
    context.checkPolicyFile = true;

    var request:URLRequest = new URLRequest( bitmapFile );
    loader.load( request, context );
}

Если это не поможет, вам необходимо добавить crossdomain.xml на сервер, на котором размещены запрашиваемые вами изображения. Почему бы не сохранить изображения локально и не развернуть их в той же области, что и ваша сборка?

[1]:

person Ribs    schedule 31.01.2014