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

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

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

Регистрация: Jul 2010
Сообщений: 3
По умолчанию Загрузка внешнего ролика AS2 в контейнер AS3

Всем добрый день!

Есть флэш-сайт: оболочка-навигация с подгрузкой отдельных swf, все скомпилировано в AS3. Нужно добавить новые разделы, например несложную флэш-игру, но ее можно выполнить только в AS2.

На пробу я делал подстановку своим роликом (простая анимация по ключевым кадрам без всякого кода) вместо одного из разделов и картина следующая: ролик скомпилированный в AS3 крутился безо всяких проблем, ролик AS2 подвешивал сайт полностью. В чем причина - движке сайта или приципиальной невозможности поднятого вопроса я пока разобраться не смог.

Принципиально, есть возможность загрузки AS2 в AS3 или нет ? Или может быть есть возможность дочерний ролик, без переписывания кода скомпилировать все-таки под AS3 малой кровью ?

Спасибо.

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

Регистрация: Aug 2008
Сообщений: 63
да есть, загружаеться обычным лоадером в АS3
Код AS3:
loader = new Loader();
urlRequest = new URLRequest(url);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadDataComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError)
loader.load(urlRequest, new LoaderContext(true));
 
private function loadComplete(e:Event)void {
	loader = (e.currentTarget);
 
	element_mc.addChild(loader);
}
element_mc - мувик в ас3, url - адресс флешки которая написана на аs2, new LoaderContext(true) - необезательный параметр (загружать или не загружать crossdomain)


Последний раз редактировалось kiraml; 28.07.2010 в 14:12.
Старый 28.07.2010, 19:53
Danila вне форума Посмотреть профиль Отправить личное сообщение для Danila Найти все сообщения от Danila
  № 3  
Ответить с цитированием
Danila

Регистрация: Jul 2010
Сообщений: 3
Благодарю за быстрый ответ, kiraml.

Чтобы проверить я создал пустой мувик AS3, в первом кадре разместил ваш пример, заменив element_mc на ключевое слово this. Кстати, компилятор ругался на переменные loader и urlRequest до тех пор, пока я не поставил var перед ними.

Еще была ошибка в том, что слушателе событий указан loadDataComplete вместо loadComplete. Все это я пофиксил, но вот беда - при запуске этого контейнера компилятор выдал в непрерывном цикле ошибку:

Цитата:
TypeError: Error #1034: Type Coercion failed: cannot convert
flash.display::LoaderInfo@2bd91041 to flash.display.DisplayObject.
at game_fla::MainTimeline/loadComplete()

Старый 28.07.2010, 20:49
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
потому что loader = (e.currentTarget);// тут ошибка

e.currentTarget!= loader это contentLoaderInfo.
сделайте в классе:

Код AS3:
public var loader = new Loader();
public va urlRequest = new URLRequest(url);
 
public function load():void
{
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError)
loader.load(urlRequest, new LoaderContext(true));
} 
private function loadComplete(e:Event)void {
	element_mc.addChild(loader);
}
__________________
Отряд Котовскага

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

Регистрация: Jul 2010
Сообщений: 3
Котяра, я использовал ваш пример, ошибок компилятор не выдает, однако указанный в url ролик не отображается.

Я пробовал подставить тестовый трейс, и похоже, даже не происходит вызова loadComplete, и вызов ioError тож не происходит, даже если url намеренно был искажен.

Вобщем, и целом всем спасибо. Видимо, нахрапом мне эту проблему не решить придется досконально изучить AS3.

PS: Хочу также поблагодарить всех участников форума помогающих новичкам. Уже долгое время ваши добрые советы помогали мне решить многие проблемы. Всем спасибо!

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

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

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


 


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


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