PDA

Просмотр полной версии : проверка загрузки джпегов в разные кадры мувика


Prior
04.04.2010, 15:59
есть 6 кадров на одном слое в одному мувике pictt_777 (инстанс которого 'pic')
и один скрипт
gotoAndStop(_parent._parent.num);
во втором слое

в каждом из этих кардров лежит по мувику pic1-pic6(инстансы аналогичные) куда надо погрузить из хмл файла джпеги адрес которых в глобальных переменных _global.img1-img6

изза того что много раз флешка обращаеться к каждому из этих обьектов надо один раз загрузить туда картинки и все

знаю что надо либо создать мувик-контейнер в каждом из кадров
либо уже загружать в имеющеи
но незнаю как перебрать их ибо они в разных кадрах
и как проверить загружал я уже туда картинку или нет

var mc = this.createEmptyMovieClip("cont", this.getNextHighestDepth());
mc.loadMovie(_global.img[i]);

оч надеюсь на вашу помощ

mooncar
04.04.2010, 18:50
"В кадры" на таймлайне ничего загружать не получится.
Сделайте в начале невидимый контейнеры, грузите все в них.
Потом по надобности делайте их видимыми и опять невидимыми.
Можно с загруженного снять битмапу и положить ее в массив, а потом также добавлять-убирать со сцены эти битмап-данные, когда нужно.
Как все это делать, обсуждалось на форуме неоднократно.

PS. loadMovie не используйте, используйте класс MovieClipLoader.

Prior
04.04.2010, 19:36
http://193.93.19.6/flash/header_v8_3.html - это то над чем я парюсь

обьект pictt_777 используеться сразу в 6 случаях только разными кадрами поетому мне надо загружать их именно в те кадры

я вот сделал такой скрипт в первом фрейме мувика pic1

if (_global.imgl[0] == 'start load')
{this.createEmptyMovieClip("mc", this.getNextHighestDepth());
if (this.mc.loadClip(_global.image[0], "mc")== true)
{trace ('load 1 loaded');
}
else {
trace ('load 1 notok')};
_global.imgl[0] = 'loaded';}
else {
trace (_global.imgl[0]);
}
но немогу понять почему негрузиться

in4core
04.04.2010, 19:41
Зачем вы все время в чсвоих скриптах постоянно используете глобальные переменные! Это же нехорошо совсем!

Добавлено через 4 минуты
if (this.mc.loadClip(_global.image[0], "mc")== true) ЧТО ЭТО????? АААААА!!!! цирк?

Prior
04.04.2010, 19:47
просто я использую эти переменные в разных мувиках
а разве можно без глобального?

in4core
04.04.2010, 19:50
Я вам с удовольствием помогу тока уберите эти ужасы с кода! Что вы хотите в if проверять ? загрузку клипа? Тjulf надо использовать onLoadInit метод
mcl.onLoadInit = function() { someVarSay = true; }
onEnterFrame = function() {if(someVarSay) { trace("Loaded")}}

Добавлено через 1 минуту
Конечно можно обойтись без глобала! Я лично *(имхо) глобал тока для подгрузки внешних классов делаю. Все остальное local

Prior
04.04.2010, 20:24
нео понял код что вы написали, точнее незнаю то ли мне надо

вот как я понимаю как должен работать моя скрип

сначала проверяеться переменная imgl[i] - тоесть первый ли раз обращаеться к этому клипу

если да то меняеться imgl[i] и создаеться мувик-контейнер (правда наверное можно и без него)
и загружаеться туда файл по ссылке image[i] мб с прелоудером

но полскольку я слаб в програмировании то у меня бывают такие ляпы :)


переделал на такой код
var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
function onLoadInit(mc:MovieClip) {
trace("onLoadInit: " + mc);
}
mcLoader.addListener(this);
mcLoader.loadClip(_global.image[0], container);
все работает
а вот если поставил такую проверку
if (_global.imgl[0] == 'start load'){
trace(_global.imgl[0]);
_global.imgl[0] = 'loaded';
trace(_global.imgl[0]);
mcLoader.addListener(this);
mcLoader.loadClip(_global.image[0], container);
}
else {trace('image1 loded')} то перестает загружать

in4core
05.04.2010, 02:33
вопервых.
var obj:Object = new Object();
mcLoader.addListener(obj);
это раз
Во вторых - ошибок не вижу. Не нравится тока снова вот это if (_global.imgl[0] == 'start load') что то тут не так мне кажется..... хотя без разницы если трейсы работают....

lexa2000lexa
05.04.2010, 10:58
вопервых.
var obj:Object = new Object();
mcLoader.addListener(obj);
это раз

вот это как раз и не обязательно , чем вам this не объект? не нужно плодить лишние объекты, когда можно обойтись и без них.
to prior
выкладываете ваш исходник , так быстрее помогут.

Prior
05.04.2010, 12:46
исходники с остальными файлами тут (http://193.93.19.6/flash/1.rar)

lexa2000lexa
05.04.2010, 13:49
пересохраните как минимум под CS3.

Prior
05.04.2010, 15:47
исходники в цс3 (http://193.93.19.6/flash/1_cs3.rar)

lexa2000lexa
05.04.2010, 16:21
все у вас работает, и нормально загружаеться.

Prior
05.04.2010, 17:55
какраз и нет
оно загружает картинку
только оно каждый раз ее загружает как я понимаю
ибо

функция
mclListener.onLoadInit = function(mc:MovieClip){
trace("onLoadInit: " + mc);
_global.imgl[0] = 'loaded';
trace('_global.imgl[0]'+_global.imgl[0]);
}
несрабатывает

кстати а как сделать так чтоб после загрузки картинки был такой ефект с картинками как здесь (http://193.93.19.6/flash/header_v8_3.swf)
тоесть там как я чуствую надо переделывать в битмап, неподкажите как