Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Не видно глобальной переменной из мувика (http://www.flasher.ru/forum/showthread.php?t=78269)

manas 12.04.2006 22:32

Не видно глобальной переменной из мувика
 
Есть файл - нечто типа фотоальбома с превью: Один "основной" муви-клип, в который грузятся фотки
Цитата:

this.pics.loadMovie("img/Image"+glob+img+".jpg");
и 6 мелких мувиков, в которые подгружаются превью этих фоток по циклу
Цитата:

for(i=1;i<=7;i++){
this["pp"+i].loadMovie("tumbs/p"+glob+i+".jpg");
}
Их имена при загрузке формируются из глобальной переменной (glob) и локальной (img или i).Две кнопки: "Next" и "Back", при клике на которые значение global меняется на 1 и грузятся новые фото и превью
Цитата:

on(release){
_global.glob = glob++;
trace("glob"+glob);
img = glob + 1;
this.pics.loadMovie("img/Image"+glob+img+".jpg");
for(i=1;i<=7;i++){
this["pp"+i].loadMovie("tumbs/p"+glob+i+".jpg");

}
}
На муви-клипы(превью) навешена функция загрузки изображения в основной мувик и здесь их имена генерируются из названия глобала и самого мувика, на который кликнули
Цитата:

on(Release){
var n:String
n = _name;
m=n.substring(2);
//trace(n);
//trace(m);
_root.pics.loadMovie("img/Image"+glob+m+".jpg");
}
Проблема в том, что из превью глобальная функция определяется с запозданием, то есть если кликнуть на "Next", то в мувики загружается то, что нужно, а вот при клике на превью - картинки с предыдущим индексом global... вот
Как быть-то? Что сделать, чтобы значение global обновлялось вовремя в скрипте муви-клипов?
Особое спасибо тем, кто дочитал всё это до конца:rolleyes:

iNils 12.04.2006 23:10

Смени
_global.glob = glob++;
на
_global.glob++;

iNils 12.04.2006 23:14

В качестве работы над ошибками.
В новом файле наиши код
Код:

_global.glob = glob++;
_global.glob = glob++;
trace (_global.glob + " " + glob);

И попробуй понять почему трейс даст 1 2, а не 2 2

manas 12.04.2006 23:41

пробовал...
тогда вообще global не изменяется...

iNils 13.04.2006 02:15

Только исходник спасет отца русской демократии.

manas 13.04.2006 15:17

Вложений: 1
Не вопрос ;)

iNils 13.04.2006 18:46

смени код

Код:

if(glob=0){
        _root.prev_chapter._visible = false;
}

на
Код:

if(glob==0){
        _root.prev_chapter._visible = false;
}


manas 13.04.2006 19:15

а... точно! спасибо большое =)))

manas 13.04.2006 19:38

только в кадре эта функция срабатывает один раз - я её в отдельный мувик засунул, чтобы постоянно условие проверялось:
Цитата:

onClipEvent(enterFrame){
if(glob==0){
_root.prev_chapter._visible = false;
}
else {
_root.prev_chapter._visible = true;
}
}
- а там та же песня, что и с превью: global с опозданием обновляется...
шьёрт... где же я неправ?...

Whatsername 14.04.2006 04:18

Цитата:

Сообщение от iNils
Код:

_global.glob = glob++;
_global.glob = glob++;
trace (_global.glob + " " + glob);


Вот чего я не могу понять, так это почему
Код:

_global.glob = glob++; // undefined
Как я думаю: glob в области видимости клипа приводится к числовому типу (нулю), возвращает свое значение (0), инкрементирует свое значение (1). Но _global.glob получает undefined, значит "все это мне только померещилось". Не мог бы ты объяснить логику скрипта?


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

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