Просмотр полной версии : Несколько вызовов LoadMove подряд.
Ситуция такая. Есть клип созданный на основе (не так важно)
http://www.flash-site.ru/flash_xml_photogallery.html
В процессе по нажатиям кнопок, дёргаются loadMove("xxx.jpg",1);
Так реалезована фотогалерея. Сам клип работает.
Проблемма при подсовывании клипа под некое флешовое апи, которое,
скорее всего его так же грузит через loadMove.
В нём загружается первый кадр и все последующие loadMove эгнорируются.
Что интересно! Если сначла запросить через loadMove несуществующий адрес,
то при нажатии на кнопки, дальнейшие фотографии загружаются и обновляются.
Вопрос, в чём моет быть данная проблемма?
Очень прошу о конструктивном совете!
З.Ы. Это очевидно не описка и не проблемма с путями к файлам или регистрами букв. Тут что-то похитрее. И ещё, в моём случае так же эгнорируется unloadMove. Клип остаётся себе на месте.
Используйте MovieClipLoader.
loadMovie - сам по себе проблема, так как не дает гарантии загрузки до выполнения остального кода.
AS работет асинхронно, то есть код уже может выполняться дальше, а контент еще не догрузился, и код будет работать впустую, в результате ничего не происходит.
Пора уже избавляться от порочного кода.
Спасибо за совет, но к сожалению не помогло.
Перевёл код на лоадер. Взял как основу пример отсюда
http://demiart.ru/forum/index.php?showtopic=63026
Ситуация та-же, первую картинку загружает, после чего умирает и всегда
показывает только её (
Добавлено через 21 минуту
Ещё одно наблюдение. если после загрузки первого изображения создать ещё один контейнер
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
и создавать дальше container1, container2 и т.д., то старые контейнеры остаются,
но и новые появляются подгруджая картинки. Может можно просто как-то убить конетйнер созданный через createEmptyMovieClip? Или пересоздать, обновить, прересовать...
Добавлено через 29 минут
В итоге, всё выглядит так, буд-то Клип не догружается и зависает где-то на последнем этапе.
Может эта проблема быть из-за того что описываемый код компилится в AS2, а зависает при загрузке его в ролик AS3 ?
Добавлено через 8 часов 9 минут
неужели только мне так не прёт с этими MoveLoade-рами?
Скажите, хотя бы, есть в AS грубый способ убить клип? Типа
delete или destroy ? какое-нибудь очищение память? :(
Уважамый obiz, канешно есть, но перед тем как задавать такие вопросы просто посмотрите в книге? в справке ( F1) не поленитесь там все написано=).
MoveLoade - это от лукавого.
Ну а вообще если ты хочешь затерать можно грузить изображение в этот же клип или на ту же глубину ... ну по крайне мере попробуй.
Созданые мувики можно удалить с помощью метода removeMovieClip();
не поленитесь там все написано
Благодарю, но видимо я плохо изложил суть проблемы. Про это я литературы не нашёл.
можно грузить изображение в этот же клип или на ту же глубину ... ну по крайне мере попробуй.
Так я и пытался сначала. Так, кстати, и описано в кодах по ссылкам.
Ну если брать сокращённый вариант, то делается так:
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 индусы индусили..
Кто мне обьяснит почему такой хак решает мою проблемму - с мнея пиво! :drinks:
в обработчике ошибок:
if(err < 4)
{
dbg.text += "ERROR:"+err;
mcLoaderXXX.loadClip("error url.jpg", canvXXX);
}
else if(err == 4)
mcLoaderXXX.loadClip("01.jpg", canvXXX);
Говоря по русски, если 4 раза дёрнуть несуществющий адрес, то лоадер прочухивается и дальше работает ка положено.
Уже очевидно, что идёт конфликт с окружением той флешки, в которую подкладывается злосчастный просмотрщик. Вопрос - как всю логику просмотрщика полностью изолировать от среды внешней флешки?
Пробовал кстати обернуть весь код в
try{
AllMyCode();
}
catch(e:Object)
{
dbg.text = e;
dbg.text += "#############";
}
как и ожидалось, никаких исключений, и ничего не изменилось (
Чесно оворя в AS3 я не силен, сталкиватся не приходилось, а ели чесно, чем разбиратся в чужих гемарах сделали бы свою галерею на подобе.
Щас я гляну что вы описали попродробнее если что в голову придет напишу.
Добавлено через 8 минут
Вам xml обязательно использовать?
Благодарю за участие. После того как стало очевидно что это косяки самого флеша, я переписал просмотрщик на AS3 и всё чудесным образом заработало. Всё-таки AS2 это ещё не полноцая среда для программирования.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.