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

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

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

Регистрация: Nov 2005
Адрес: 26°58′49.06″ 49°24′35.72″ Ymaps
Сообщений: 119
Отправить сообщение для ZGG с помощью ICQ Отправить сообщение для ZGG с помощью Skype™
Question Передача ссылки на обьект в загруженный swf (локальный и удаленный)

Здравствуйте!
Пытаюсь загрузить swf и передать ему ссылку на экземпляр класса, созданного в родительской флешке, что бы он мог с ней работать. Тестирую это все дело в FD. Вот когда загружаю swf с той же папке где компилируется родительская флешка (bin) то все работает нормально. А вот как только пытаюсь загрузить эту флешку с сервера и после загрузки передаю ей ссылку, то получаю ошибку 1034 несоответствия типов.
На словах наверное объяснить не получилось, покажу кодом:

Swf который загружается:

Код AS3:
....
private var keyUpdater:KeyUpdater;
....
public function Main():void
{
	if (stage)
		init();
	else
		addEventListener(Event.ADDED_TO_STAGE, init);
}
 
private function init(e:Event = null):void
{
	Security.allowDomain("*")
	removeEventListener(Event.ADDED_TO_STAGE, init);
...
}
 
public function initGame(settings:Object):void
{
	var myUid:uint = settings.myUid
	var playersUids:Array = settings.playersUids
	keyUpdater = settings.keyUpdater
	// дальше вызываем методы и работаем со свойствами keyUpdater		
}
Родительская флешка:
Код AS3:
private var keyUpdater:KeyUpdater;
 
public function Tester()
{
 
	keyUpdater = new KeyUpdater()
 
	var loader:Loader = new Loader()
	loader.contentLoaderInfo.addEventListener(Event.INIT, loader_init)
	loader.load(new URLRequest("http://cs9415.vkontakte.ru/********/6066182fa765f4.zip"));
	addChild(loader)
}
 
private function loader_init(e:Event):void
{	
	e.currentTarget.content.initGame({myUid: 95703360, playersUids: [10154504, 95703360], keyUpdater: keyUpdater})
}
Вот ошибка которую получаю после загрузки swf в родительскую флешку:
Код:
[Fault] exception, information=TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать KeyUpdater@46fb041 в KeyUpdater.
Fault, initGame() at Main.as:141
А вот если я загружаю swf локально, т.е:
Код AS3:
loader.load(new URLRequest("111.swf"));
то все работает отлично, загружается, вызываются методы и свойства из родительской флешки.

Еще один момент: родительская флешка и загружаемый swf компилируется из одного проекта, т.е.просто меняю главный класс документа (для загружаемой - Main, для родительской - Tester).
Скорее всего там что то с безопасностью. Надо, кажется, как то использовать LoaderContext при загрузке swf из вне.
Подскажите пожалуйста.

Заранее спасибо.
__________________
ЛОГИКА - залог программирования!

Старый 09.10.2011, 20:24
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Скорее всего, что ApplicationDomain разные.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Nov 2005
Адрес: 26°58′49.06″ 49°24′35.72″ Ymaps
Сообщений: 119
Отправить сообщение для ZGG с помощью ICQ Отправить сообщение для ZGG с помощью Skype™
dimarik, спасибо за ответ.

Пробовал использовать твой метод загрузки, получил тот же результат.
Не могу нормально передать ссылку на обьект в загруженный swf.

Может есть еще какие то варианты?
__________________
ЛОГИКА - залог программирования!

Старый 10.10.2011, 10:58
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Хм... А я смог. Что я делаю не так?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Nov 2005
Адрес: 26°58′49.06″ 49°24′35.72″ Ymaps
Сообщений: 119
Отправить сообщение для ZGG с помощью ICQ Отправить сообщение для ZGG с помощью Skype™
dimarik, поделись кодом, пожалуйста. А то вот застрял на этой проблеме и дальше вся работа стала. ((
__________________
ЛОГИКА - залог программирования!

Старый 11.10.2011, 00:20
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Давай, наоборот. С тебя минимальный неработающий пример.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
external swf , loader as3 , loaderContext

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

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


 


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


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