PDA

Просмотр полной версии : swapDephts


mr.zed
12.01.2007, 17:25
Привет!
У меня в слое есть мувик Effect. Потом я создаю новые мувики с картинками. Можно вытащить Effect на передний план? Effect расположен на форме изначально (еще в редакторе). Вот как я пытаюсь:

// создаю
this.attachMovie("Symbol1", "Symbol1", i);
// в него вкладываю новые мувики
mc[i]=Symbol1.createEmptyMovieClip("mc"+i,i);
// в новый мувик гружу картинку
mc[i].loadMovie("Ballon"+i+".gif","mc"+i);

и потом фоновый мувик хочу пересте на 1й план
_root.Effect.swapDephts(1000);
// по идее должен выскочить наверх. Пробовал и 1 вместо 1000

wvxvw
12.01.2007, 18:19
вложенные клипы всегда будут сверху того клипа, в который они вложены, если в этом вопрос.

mr.zed
12.01.2007, 18:38
Не. Суть вот в чем:
1. Есть клип, в который вкладываются клипы с картинками.
2. Есть клип с эффектом блика.
Получается, что клипы 1 (они подгружаются из файлов) наверху клипа с бликом. Мне надо наоборот. Создавать в разных слоях на Timeline не помогает, эффект тотже. Я наверное неправильно пользую swapDepths

Infectedcell
12.01.2007, 19:01
Я наверное неправильно пользую swapDepths
нет.. пользуешь правильно.
но вот фрагмент кода ты какой то указал корявый.
Если показываешь фрагмент с "i", значит, возможно, где то юзал ФОР или что то еще.
Может у тебя там клипов 1500 штук, а ты делаешь swapDepths на 1000
Вот мой тебе вариант, сходу. Не тестил, если что, поправишь сам.


for (i=0; i<100;i++){
var allMC = clipsholder.attachMovie("Clip",""Clip"+i,i);
allMC._x = Math.round(Math.random()*100);
allMC._y = Math.round(Math.random()*100);
if (i>=99){
var fxs = clipsholder.attachMovie("effect","effect",100)
}
}

или замени

if (i>=99){
effect.swapDepths(100);
}


Вообщем делай свой swapDe... на событие, типа, если что то случилось, тада мой кдип "эффект" делает что то...

wvxvw
12.01.2007, 20:12
Да, еще можно пользовать DepthManager или просто my_mc.swapDepths(_root.getNextHighestDepth()) Если клип лежит в _root'e

mr.zed
12.01.2007, 20:16
Спасибо.