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

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

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

Регистрация: Nov 2009
Сообщений: 10
По умолчанию Сторонний swf

Здравствуйте, я наверное чего то недопонимаю и не знаю...

Вообщем загружаю swf файл во флешку для последующей работы с ним. Когда сторонняя флешка лежит в локальной папке, то всё нормально.

Вот кусок кода:
main.SERVER = "../resources";
Код AS3:
		public function Entity(url:String) {
			_loader = new Loader();
			_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onComplete);
			this.url = url;
		}
 
		/** function load
		 */
		public function load() : void {
			_loader.load(new URLRequest(main.SERVER + "/" + url));
		}
 
		/** function _onComplete
		 */
		private function _onComplete(event:Event) : void {
			var mm:IMainMenu = IMainMenu(_loader.content);
			dispatchEvent(new Event(COMPLETE));
		}
Далее установил Денвер и сделал локальный сервер, теперь main.SERVER = "http://tdserver.tmp/resources";
, но в такой ситуации вылетает ошибка
TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать ext::MainMenuEx@7f10d81 в ext.IMainMenu.

Как с этим бороться?
__________________
Свободен лишь тот, кто потерял всё, ради чего стоит жить.
[I'm AS3(and Flash) Beginner]

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ничего удивительного. Как можно преобразовать Класс в Интерфейс? Возможно, Вы имели в виду
Код AS3:
var mm:IMainMenu = _loader.content as IMainMenu;
__________________
Reality.getBounds(this);

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Ничего удивительного. Как можно преобразовать Класс в Интерфейс? Возможно, Вы имели в виду
Код AS3:
var mm:IMainMenu = _loader.content as IMainMenu;
По моему тут ничего криминального нету. Интерфейс также как и класс определяет тип объекта и такой кастинг вполне уместен. Надо проверить все же =)

fiar, ваш _loader.content реализует этот интерфейс?

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

Регистрация: Nov 2009
Сообщений: 10
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Ничего удивительного. Как можно преобразовать Класс в Интерфейс? Возможно, Вы имели в виду
Код AS3:
var mm:IMainMenu = _loader.content as IMainMenu;
Если так, то возвращает null (если клип в локальной папке, то всё ок)


Цитата:
Сообщение от udaaff Посмотреть сообщение
fiar, ваш _loader.content реализует этот интерфейс?
Я немного не допонимаю, что там кого реализует...?

У меня в загружаемой флеш базовый класс наследуется(реализует члены) от интерфейса IMainMenu, в этом случае при локальной загрузке никаких ошибок.


У меня проблема вовсе не в привидении типов, а в том что флеш загружается со стороннего сервера (домена).
__________________
Свободен лишь тот, кто потерял всё, ради чего стоит жить.
[I'm AS3(and Flash) Beginner]

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

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

Старый 23.12.2009, 11:05
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от dimarik Посмотреть сообщение
По идее, тогда бы была ошибка "Нарушение изолированной среды" а не
Цитата:
TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать ext::MainMenuEx@7f10d81 в ext.IMainMenu.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
И еще. У Вас не получится загрузить удаленную swf в тот же security domain, в котором лежат классы загрузчика, если загрузчик в песочнице с префиксом local.
Т.е. удаленная swf не может использовать definitions локальной swf.
Ваш выбор - нетипизированное обращение к методам и свойствам Loader#content'а.

Добавлено через 4 минуты
Ошибка типа Coercion указывает на то, что теперь в приложении два разных IMainMenu с одинаковам именем. Находятся они соответственно в ApplicationDomain.currentDomain (у загрузчика) и в неком application domain, находящемся в отдельном security domain (у загруженной).
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 23.12.2009, 11:39
fiar вне форума Посмотреть профиль Отправить личное сообщение для fiar Найти все сообщения от fiar
  № 8  
Ответить с цитированием
fiar
 
Аватар для fiar

Регистрация: Nov 2009
Сообщений: 10
Вообщем IMainMenu пока закомментировал.

Возникло следующее: если главная и загружаемая флеш на одном сервере, то грузится, а если флеш запускается локально или со второго, то Error #2044: Необработанный SecurityErrorEvent:. text=Error #2048: Нарушение изолированной среды: http://tdserver2.com/main.swf не может загрузить данные из http://tdserver.com/resources/MainMenu.swf.
__________________
Свободен лишь тот, кто потерял всё, ради чего стоит жить.
[I'm AS3(and Flash) Beginner]

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Либо crossdomain.xml, либо Loader#loadBytes(URLLoader#data)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Nov 2009
Сообщений: 10
Всем спасибо за ответы.
crossdomain помог, всё работает, вроде разобрался, остальное сам доковыряю.
__________________
Свободен лишь тот, кто потерял всё, ради чего стоит жить.
[I'm AS3(and Flash) Beginner]

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

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

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


 


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


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