Форум 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=127128)

ic_art 06.07.2009 13:47

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

есть код:
Код AS1/AS2:

for(i=1; i<=3; i++){
_root.swach.pic_now_mc.createEmptyMovieClip("pic"+i+"_mc", this.getNextHighestDepth()).loadMovie("pic"+i+".jpg", "pic"+i+"_mc");
current[i]=eval("_root.swach.pic_now_mc.pic"+i+"_mc");
}

который загружает 3 картинки в мувик _root.swach.pic_now_mc, создавая в нём pic1_mc, pic2_mc и pic3_mc,создавая из них массив current[i]
но, когда я далее даю команду
Код AS1/AS2:

current[3]._alpha=0;

, то прозрачными становяться все 3 мувика.

PS:
дабавляя в тело цикла trace(current[i]); на выводе получаю:
_level0.swach.pic_now_mc.pic1_mc
_level0.swach.pic_now_mc.pic2_mc
_level0.swach.pic_now_mc.pic3_mc


если же создаю новый цикл:
Код AS1/AS2:

for(i=1; i<=3; i++){
trace(current[i]);
}
}

то на выходе:



_level0.swach.pic_now_mc.pic3_mc


PPS:
Код AS1/AS2:

for(i=1; i<=3; i++){
current[i]=_root.swach.pic_now_mc.createEmptyMovieClip("pic"+i+"_mc", this.getNextHighestDepth()).loadMovie("pic"+i+".jpg", "pic"+i+"_mc");
trace(current[i]);
}

на выходе даёт undefined, но картинки загружает...
Код AS1/AS2:

for(i=1; i<=3; i++){
current[i]=_root.swach.pic_now_mc.createEmptyMovieClip("pic"+i+"_mc", this.getNextHighestDepth());
current[i].loadMovie("pic"+i+".jpg", "pic"+i+"_mc");
trace(current[i]);
}

всё подгружает, на выходе:
_level0.swach.pic_now_mc.pic1_mc
_level0.swach.pic_now_mc.pic2_mc
_level0.swach.pic_now_mc.pic3_mc

но
Код AS1/AS2:

_root.swach.pic_now_mc.pic3_mc._alpha=0

опять прячет все 3 мувика

помогите пожалуйста разобраться что не так?

Добавлено через 38 минут
Дополнение:

введя некоторые правки получаю:
Код AS1/AS2:

current=new Array();
 
for(i=1; i<=3; i++){
_root.swach.pic_now_mc.createEmptyMovieClip("pic"+i+"_mc", this.getNextHighestDepth());
loadMovie("pic"+i+".jpg", "_root.swach.pic_now_mc.pic"+i+"_mc");
current[i]="_root.swach.pic_now_mc.pic"+i+"_mc";
trace(current[i]);
}
trace("\n");
for(i=1; i<=3; i++){
trace(current[i]);
current[i]=eval(current[i]);
trace(current[i]);
}

что на выходе даёт:
_root.swach.pic_now_mc.pic1_mc
_root.swach.pic_now_mc.pic2_mc
_root.swach.pic_now_mc.pic3_mc


_root.swach.pic_now_mc.pic1_mc
undefined
_root.swach.pic_now_mc.pic2_mc
undefined
_root.swach.pic_now_mc.pic3_mc
_level0.swach.pic_now_mc.pic3_mc


посещает мысль, что создавая мувик _root.swach.pic_now_mc.pic2_mc убивается мувик _root.swach.pic_now_mc.pic1_mc и так далее...

то, что мувики изначально создаются видно из конструкции:
Код AS1/AS2:

for(i=1; i<=3; i++){
_root.swach.pic_now_mc.createEmptyMovieClip("pic"+i+"_mc", this.getNextHighestDepth());
loadMovie("pic"+i+".jpg", "_root.swach.pic_now_mc.pic"+i+"_mc");
current[i]=eval("_root.swach.pic_now_mc.pic"+i+"_mc");
trace(current[i]);
}

на выходе:
_level0.swach.pic_now_mc.pic1_mc
_level0.swach.pic_now_mc.pic2_mc
_level0.swach.pic_now_mc.pic3_mc


это я косяк, или флэш косяк???

alekslitvinenk 06.07.2009 14:43

попробуйте вместо
Код AS1/AS2:

this.getNextHighestDepth()

использовать
Код AS1/AS2:

 
_root.swach.pic_now_mc.getNextHighestDepth()


ic_art 06.07.2009 14:56

Огромное спасибо!!!

воистину лекарство помогло!!!

iNils 06.07.2009 15:04

Какое же лекарство? Это обычная невнимательность. Клипы создаете в swach.pic_now_mc, глубину берете в this. Если this не является swach.pic_now_mc, то вы каждый раз создаете клип на одной и той же глубине.

ic_art 06.07.2009 15:30

однако в других конструкциях этот механизм исправно работал...

хотя не спорю.. я-лох :)

iNils 06.07.2009 15:47

Цитата:

однако в других конструкциях этот
При условии, что this и есть сам объект указанный в качестве родителя, да.


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

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