Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.08.2015, 13:14
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 1  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию 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 
		{
 
		}
 
 
	}
 
}
Картинки в загружаемом проекте грузятся аналогичным образом.
Что не так делаю, куда копать?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 14.08.2015, 13:35
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Попробуй:
  1. Передать в лоадер в метод load() параметры контекста с указанием текущего домена безопасности. (второй аргумент)
  2. В загружаемой swf добавить: Seccurity.allowDomain('*'), Seccurity.allowInseccureDomain('*')
__________________
Дети не должны знать о своих родителях

Старый 14.08.2015, 13:38
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 3  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Вот так загружается swf, на сцену добавляется именно Loader, нет смысла выдергивать и изменять какие-то отдельные данные.
Код AS3:
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
swiffyLoader.load(new URLRequest(swiffyString), context);
Домены прописаны.
Код AS3:
Security.allowDomain("*");
Security.allowInsecureDomain("*");
На результат не повлияло.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 14.08.2015, 14:12
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
SecurityDomain тоже попробуй передать.
Загружающая swf где либо не делает bitmapData.draw() загруженной swf, или контейнера, содержащего её?
__________________
Дети не должны знать о своих родителях

Старый 14.08.2015, 14:31
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Кажется нашлась ошибка. Это ИДЕ вместо IOError почему-то выплевывал SecurityError. В общем, только подправил пути - проблема исчезла. Ну и на всякий случай гружу по полному адресу с сервера. Всем спасибо.

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


Последний раз редактировалось TanaTiX; 14.08.2015 в 14:42.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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