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

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

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

Регистрация: Oct 2008
Сообщений: 28
The bomb! 2 вызовова LoadMove подряд не работает.. Помогите!

Ситуция такая. Есть клип созданный на основе (не так важно)
http://www.flash-site.ru/flash_xml_photogallery.html

В процессе по нажатиям кнопок, дёргаются loadMove("xxx.jpg",1);
Так реалезована фотогалерея. Сам клип работает.
Проблемма при подсовывании клипа под некое флешовое апи, которое,
скорее всего его так же грузит через loadMove.

В нём загружается первый кадр и все последующие loadMove эгнорируются.
Что интересно! Если сначла запросить через loadMove несуществующий адрес,
то при нажатии на кнопки, дальнейшие фотографии загружаются и обновляются.

Вопрос, в чём моет быть данная проблемма?
Очень прошу о конструктивном совете!

З.Ы. Это очевидно не описка и не проблемма с путями к файлам или регистрами букв. Тут что-то похитрее. И ещё, в моём случае так же эгнорируется unloadMove. Клип остаётся себе на месте.


Последний раз редактировалось obiz; 18.02.2010 в 19:23. Причина: опечатка
Старый 18.02.2010, 10:32
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Используйте MovieClipLoader.
loadMovie - сам по себе проблема, так как не дает гарантии загрузки до выполнения остального кода.
AS работет асинхронно, то есть код уже может выполняться дальше, а контент еще не догрузился, и код будет работать впустую, в результате ничего не происходит.
Пора уже избавляться от порочного кода.

Старый 18.02.2010, 13:10
obiz вне форума Посмотреть профиль Отправить личное сообщение для obiz Найти все сообщения от obiz
  № 3  
Ответить с цитированием
obiz

Регистрация: Oct 2008
Сообщений: 28
Спасибо за совет, но к сожалению не помогло.
Перевёл код на лоадер. Взял как основу пример отсюда
http://demiart.ru/forum/index.php?showtopic=63026
Ситуация та-же, первую картинку загружает, после чего умирает и всегда
показывает только её (

Добавлено через 21 минуту
Ещё одно наблюдение. если после загрузки первого изображения создать ещё один контейнер
Код AS1/AS2:
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
и создавать дальше container1, container2 и т.д., то старые контейнеры остаются,
но и новые появляются подгруджая картинки. Может можно просто как-то убить конетйнер созданный через createEmptyMovieClip? Или пересоздать, обновить, прересовать...

Добавлено через 29 минут
В итоге, всё выглядит так, буд-то Клип не догружается и зависает где-то на последнем этапе.
Может эта проблема быть из-за того что описываемый код компилится в AS2, а зависает при загрузке его в ролик AS3 ?

Добавлено через 8 часов 9 минут
неужели только мне так не прёт с этими MoveLoade-рами?
Скажите, хотя бы, есть в AS грубый способ убить клип? Типа
delete или destroy ? какое-нибудь очищение память?

Старый 19.02.2010, 00:57
cass вне форума Посмотреть профиль Отправить личное сообщение для cass Найти все сообщения от cass
  № 4  
Ответить с цитированием
cass

Регистрация: Feb 2010
Сообщений: 14
Уважамый obiz, канешно есть, но перед тем как задавать такие вопросы просто посмотрите в книге? в справке ( F1) не поленитесь там все написано=).
MoveLoade - это от лукавого.
Ну а вообще если ты хочешь затерать можно грузить изображение в этот же клип или на ту же глубину ... ну по крайне мере попробуй.
Созданые мувики можно удалить с помощью метода removeMovieClip();

Старый 19.02.2010, 01:18
obiz вне форума Посмотреть профиль Отправить личное сообщение для obiz Найти все сообщения от obiz
  № 5  
Ответить с цитированием
obiz

Регистрация: Oct 2008
Сообщений: 28
Цитата:
Сообщение от cass Посмотреть сообщение
не поленитесь там все написано
Благодарю, но видимо я плохо изложил суть проблемы. Про это я литературы не нашёл.

Цитата:
Сообщение от cass Посмотреть сообщение
можно грузить изображение в этот же клип или на ту же глубину ... ну по крайне мере попробуй.
Так я и пытался сначала. Так, кстати, и описано в кодах по ссылкам.
Ну если брать сокращённый вариант, то делается так:
Код AS1/AS2:
mcLoader.loadClip("01.jpg", container);
mcLoader.loadClip("02.jpg", container);
и на экране остаётся 01.jpg.
Как показывает трассировка, не вызывается даже onLoadStart.
Вот за removeMovieClip - спасибо. Его я упустил. Сейчас попробую...

Добавлено через 17 минут
К сожалению, removeMovieClip так же бездействует. Хотя и возвращает true.

Добавлено через 27 минут
Попытки пересоздавать MovieClip, MovieClipLoader и listener:Object
так же ни к чему ни превели. Ощущение что зависает какой-то глобальный процесс. Может быть такое, что этот просмотрщик начинает работать в пространстве загружающего мувика и там с чем-то сталкивается? Можно как-то ребутнуть всю среду окружения?

Добавлено через 1 час 10 минут
Нет, всё таки Flash индусы индусили..
Кто мне обьяснит почему такой хак решает мою проблемму - с мнея пиво!
в обработчике ошибок:
Код AS1/AS2:
	if(err < 4)
	{
		dbg.text += "ERROR:"+err;
		mcLoaderXXX.loadClip("error url.jpg", canvXXX);
	}
	else if(err == 4)
		mcLoaderXXX.loadClip("01.jpg", canvXXX);
Говоря по русски, если 4 раза дёрнуть несуществющий адрес, то лоадер прочухивается и дальше работает ка положено.

Уже очевидно, что идёт конфликт с окружением той флешки, в которую подкладывается злосчастный просмотрщик. Вопрос - как всю логику просмотрщика полностью изолировать от среды внешней флешки?
Пробовал кстати обернуть весь код в
Код AS1/AS2:
try{
AllMyCode();
}
catch(e:Object)
{
	dbg.text = e;
	dbg.text += "#############";
}
как и ожидалось, никаких исключений, и ничего не изменилось (

Старый 19.02.2010, 02:46
cass вне форума Посмотреть профиль Отправить личное сообщение для cass Найти все сообщения от cass
  № 6  
Ответить с цитированием
cass

Регистрация: Feb 2010
Сообщений: 14
Чесно оворя в AS3 я не силен, сталкиватся не приходилось, а ели чесно, чем разбиратся в чужих гемарах сделали бы свою галерею на подобе.
Щас я гляну что вы описали попродробнее если что в голову придет напишу.

Добавлено через 8 минут
Вам xml обязательно использовать?

Старый 19.02.2010, 13:14
obiz вне форума Посмотреть профиль Отправить личное сообщение для obiz Найти все сообщения от obiz
  № 7  
Ответить с цитированием
obiz

Регистрация: Oct 2008
Сообщений: 28
Благодарю за участие. После того как стало очевидно что это косяки самого флеша, я переписал просмотрщик на AS3 и всё чудесным образом заработало. Всё-таки AS2 это ещё не полноцая среда для программирования.

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

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

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


 


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


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