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

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от illuzor Посмотреть сообщение
Попытка обратиться к stage, когда он ещё не существует. Нужно сначала поставить слушатель добавления на stage.
В ошибке же явно написано
Цитата:
cannot access Stage owned by app:/Родительский.swf.
Не может получить доступ к объекту Stage, принадлежащему другой swf.
То есть stage то он видит, но по соображениям безопасности доступ к нему ограничен.
Надо грузить флешку указывая контекст загрузки
Вот код из одной из моих игр, в которой грузились swf с сервера
Код AS3:
var loader:Loader				= new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderCompele);
if (Security.sandboxType == Security.REMOTE) {
	var context:LoaderContext	= new LoaderContext();
	context.applicationDomain	= new ApplicationDomain(ApplicationDomain.currentDomain);
	loader.loadBytes(byteArray, context);
} else {
	loader.loadBytes(byteArray);
}
Тут тебе loadBytes можно заменить на load, если грузишь не из байт массива, а напрямую с диска.

Цитата:
Код AS3:
Монтажный кадр 1, слой "Actions", кадр 1, строка 2, столбец 24	1086: Синтаксическая ошибка: ожидается точка с запятой перед leftparen
.
Но ставить точку с запятой перед скобками - это же неправильно?
Не факт, что дело в этом. Он просто отваливается на этом месте. Покажи код


п.с. Никогда не называй файлы кириллицей и никогда не используй пробелы в называниях файлов. Только латиница и числа. Иначе хватанешь какой-нибудь непонятный баг, и будешь долго искать причины и ломать голову, "что же не так?"
__________________
Ко мне можно и нужно обращаться на ты)

Старый 13.04.2016, 10:15
Comer вне форума Посмотреть профиль Отправить личное сообщение для Comer Найти все сообщения от Comer
  № 2  
Ответить с цитированием
Comer

Регистрация: Dec 2010
Сообщений: 121
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Не факт, что дело в этом. Он просто отваливается на этом месте. Покажи код

п.с. Никогда не называй файлы кириллицей и никогда не используй пробелы в называниях файлов. Только латиница и числа. Иначе хватанешь какой-нибудь непонятный баг, и будешь долго искать причины и ломать голову, "что же не так?"
По твоему совету переименовал оба файла английскими буквами. Для сокращения абсолютного пути выложил их на рабочий стол и тестирую.
Вот код родительского swf (в который загружаю)
Код AS3:
stop();
 
btn.addEventListener(MouseEvent.CLICK, fl_ClickToLoadUnloadSWF);
 
import fl.display.ProLoader;
var fl_ProLoader:ProLoader;
var fl_ToLoad:Boolean = true;
 
function fl_ClickToLoadUnloadSWF(event:MouseEvent):void
{
	if(fl_ToLoad)
	{
		fl_ProLoader = new ProLoader();
		fl_ProLoader.load(new URLRequest("file:///C:/Users/Саша/Desktop/Listalka.swf"));
		addChild(fl_ProLoader);
	}
	else
	{
		fl_ProLoader.unload();
		removeChild(fl_ProLoader);
		fl_ProLoader = null;
	}
	fl_ToLoad = !fl_ToLoad;
}
Вот код флешки с листалкой (которую загружаю)
Код AS3:
stop();
 
Multitouch.inputMode = MultitouchInputMode.GESTURE;
 
var currentGalleryItem:Number = 1;
var totalGalleryItems:Number = 4;
 
stage.addEventListener (TransformGestureEvent.GESTURE_SWIPE, fl_SwipeToGoToNextPreviousFrame);
 
 
function fl_SwipeToGoToNextPreviousFrame(event:TransformGestureEvent):void
{
	if(event.offsetX == 1)
	{
		if(currentGalleryItem > 1){
			currentGalleryItem--;
			slideRight();
			trace ("Листает");
		}
	}
	else if(event.offsetX == -1)
	{
		if(currentGalleryItem < totalGalleryItems){
			currentGalleryItem++;
			slideLeft();
		}
	}
}
 
var slideCounter:Number = 0;
function slideLeft(){
	gallery_items.addEventListener("enterFrame", moveGalleryLeft);
	(root as MovieClip).nextFrame();
}
function slideRight(){
	gallery_items.addEventListener("enterFrame", moveGalleryRight);
	(root as MovieClip).prevFrame();
}
 
function moveGalleryLeft(evt:Event){
	gallery_items.x -= 48;
	slideCounter++;
	if(slideCounter == 10){
		gallery_items.removeEventListener("enterFrame", moveGalleryLeft);
		slideCounter = 0;
	}
}
function moveGalleryRight(evt:Event){
	gallery_items.x += 48;
	slideCounter++;
	if(slideCounter == 10){
		gallery_items.removeEventListener("enterFrame", moveGalleryRight);
		slideCounter = 0;
	}
}
Вот полный текст ошибки при тестировании загрузки:
Код AS3:
SecurityError: Error #2070: Security sandbox violation: caller file:///C:/Users/Саша/Desktop/Listalka.swf cannot access Stage owned by app:/Roditelsky.swf.
	at flash.display::Stage/requireOwnerPermissions()
	at flash.display::Stage/addEventListener()
	at Listalka_fla::MainTimeline/frame1()[Listalka_fla.MainTimeline::frame1:14]
Хочу ещё раз обратить внимание на то, что если при компиляции в параметрах публикации назначение родительского swf Flash Player 20, то грузится нормально. Но если назначение родительского swf AIR 20.0 for Android, тогда программа выдаёт ошибку. Возможно, это чем-то тебе поможет.

Попробуй, пожалуйста, разобраться. Может получится? На тебя только и надеюсь. У тебя огромный опыт и, самое главное, есть желание помогать людям!


Последний раз редактировалось Comer; 13.04.2016 в 11:04.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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