Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   SecurityError: Error #2000: Отсутствует активный контекст безопасности. (http://www.flasher.ru/forum/showthread.php?t=211362)

TanaTiX 14.08.2015 13:14

SecurityError: Error #2000: Отсутствует активный контекст безопасности.
 
Вот такая ошибка вываливается в вывод в ИДЕ.
Цитата:

SecurityError: Error #2000: Отсутствует активный контекст безопасности.
Вроде бы и все понятно, но...
Проект не мой, поэтому основная часть кода в ИДЕ в большом темплэйтмонстерском страшном проекте, к тому же не раз перелопаченом.
Суть в чем. Есть основная swf, которая периодически подгружает в себя более мелкие. Вот одну из таких мелких я и создал. Практически единственное, что эта мелкая swf делает - загружает и показывает картинки.
Так вот сама swf загружается, отображается, а на картинки, которые не грузятся ругается вышеприведенной фразой.
Танцевал с бубном, доменами и Security, даже создал отдельно проект с аналогичным поведением. С моим проектом все работает, а с исходным - нет. Во всех случаях FP 9.0.
Код загрузки
Код AS3:

package 
{
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.TimerEvent;
        import flash.net.URLRequest;
        import flash.utils.getTimer;
        import flash.utils.Timer;
 
        /**
        * ...
        * @author TanaTiX
        */

        public class Main extends Sprite
        {
                private var _loader:Loader;
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        _loader = new Loader();
                        _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
                        //_loader.load(new URLRequest("../../test2/bin/Test2.swf"));
                        _loader.load(new URLRequest("ImageViewer.swf"));
 
                        addChild(_loader);
                }
 
                private function onComplete(e:Event):void
                {
 
                }
 
 
        }
 
}

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

Tails 14.08.2015 13:35

Попробуй:
  1. Передать в лоадер в метод load() параметры контекста с указанием текущего домена безопасности. (второй аргумент)
  2. В загружаемой swf добавить: Seccurity.allowDomain('*'), Seccurity.allowInseccureDomain('*')

TanaTiX 14.08.2015 13:38

Вот так загружается swf, на сцену добавляется именно Loader, нет смысла выдергивать и изменять какие-то отдельные данные.
Код AS3:

var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
swiffyLoader.load(new URLRequest(swiffyString), context);

Домены прописаны.
Код AS3:

Security.allowDomain("*");
Security.allowInsecureDomain("*");

На результат не повлияло.

Tails 14.08.2015 14:12

SecurityDomain тоже попробуй передать.
Загружающая swf где либо не делает bitmapData.draw() загруженной swf, или контейнера, содержащего её?

TanaTiX 14.08.2015 14:31

Кажется нашлась ошибка. Это ИДЕ вместо IOError почему-то выплевывал SecurityError. В общем, только подправил пути - проблема исчезла. Ну и на всякий случай гружу по полному адресу с сервера. Всем спасибо.

Upd.
Сейчас что-то вообще интересное творится: появление этой ошибки зависит от того, в каком месте я лоадер на сцену добавляю. Чудеса...


Часовой пояс GMT +4, время: 13:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.