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

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

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Question Как загрузить AS2 в CS4?

Добрый вечер Уважаемые.
Вопрос в следующем. Есть класс реализующий механизм загрузки контента флэшки для сайта. На входе метод имеет ссылку на функцию которую следует использовать как ссылку для исполнения по наступлению завершения загрузки. Ссылка как правило приходит и уводит в другой класс из другой флэшки.
Код AS3:
public function loadContent(_url:String, _hnComplete:Function):void
		{
			var url:URLRequest = new URLRequest(_url);
			var loader:Loader = new Loader(); 
 
			loader.contentLoaderInfo.addEventListener( Event.COMPLETE, _hnComplete ); 
 
			try {
                loader.load(url);
            } catch (error:Error) {
                updateInfo("Не удалось загрузить данные с сервера.");
            }
		}
Все стандартно. И вот в какой то флэшке через этот метод грузиться случайно попавшаяся флэшка под AS2.
Так мы получаем ссылочку из нашего loader
Код AS3:
protected function loadObjects(event:Event):void
		{
				var obj:* = event.target.content as DisplayObject;
				loadedObj.push(obj); // Массив накопитель со ссылками на загруженные объекты
 
		}
А так добавляем впоследствии объекты на сцену
Код AS3:
		protected function endLoadChild():void
		{
			while (loadedObj.length)
			{
				addChild(loadedObj.shift() as DisplayObject);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
			}
		}
В результате когда попадается swf для 8 плеера вываливается ошибка
Код:
ArgumentError: Error #2180: Недопустимо перемещать содержимое AVM1 (AS1 или AS2) в другую часть displayList после его загрузки в содержимое AVM2 (AS3).
    at flash.display::DisplayObjectContainer/addChild()
    at code::_Group/endLoadChild()[C:\ХЛАМ\code\_Group.as:76]
Следует отметить что swf AS3 и просто картинки грузятся таким способом без проблем. До попытки добавить объект на сцену никаких прочих действий кроме указанных с ним не выполняется. Появилась эта проблема после того как сохранил fla как cs4, пока они были cs3 вроде такого не наблюдалось. Может кто знает как с этим бороться? В принципе я буду работать с AS3, поэтому меня это не пугает, страшно что клиент может пожелать добавить на свой сайт через админку такой объект и тогда движок сайта даст сбой.
Выручайте други знатоки
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Создавать массив лоадеров, а не их содержимого - на много облегчит жизнь и избавит от массы других неприятностей.
__________________
Hell is the possibility of sanity

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Создавать массив лоадеров, а не их содержимого - на много облегчит жизнь и избавит от массы других неприятностей.
Я правильно понимаю что Loader это нечто вроде контейнера в котором хранится загруженный объект в качестве child? После загрузки контейнер сохраняется или по окончании он удаляется и вместо него получаем содержимое loader.target.content? Дело в том что в дальнейшем я планирую управлять рядом свойст загруженных объектов извне и хочу быть уверен что буду изменять значения именно у тех объектов на которые рассчтиываю, а не контейнеров к которым они привязаны
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 19.11.2008, 23:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
потому что кроме этой ошибки вполне могут возникнуть следующие проблемы: у лоадера нельзя добавлять / удалять детей, т.е. удалить можно, но это выгрузит клип. Т.е. использовать контент лоадера в качестве полноценного ДО не удобно. А т.как лоадер все равно ДО, то все, что можно сделать с его контентом, так или иначе можно сделать с ним. Примерно по такому же принципу построены классы Image и SWFLoader во Флексе, и вобщем, нареканий пока что не было =)
__________________
Hell is the possibility of sanity

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

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от wvxvw Посмотреть сообщение
т.е. удалить можно, но это выгрузит клип.
То есть, если я загружал swf, в котором используется куча всяких объектов, включая битмапы, то они все выгрузятся из памяти с удалением content?

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Я имел ввиду что после того как объект был подгружен он возможно подменяет Loader. Но похоже я был не прав...
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

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

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

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


 


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


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