PDA

Просмотр полной версии : attachMovie+swapDepths = не меняется глубина мувика


djyamato
06.05.2011, 20:40
Всю плешь проел
Ребята, где я вру ?

аттачатся мувики:


for (var i = xml.firstChild.childNodes[2].childNodes[selectedGalleruNum].childNodes[4].childNodes.length - 1; i > -1; i--)
{
var thumbItem = items.itemsHolder.thumbs.attachMovie("_fotogalleryThumb", "_fotogalleryThumb_" + Math.random(), depthCounter, {...});
trace("new Depth="+depthCounter+" x="+thumbItem._x);
xPos += 154;
thumbsArray.push(thumbItem);
depthCounter++;
}
thumbsArray[0].select();
pressedItem=thumbsArray[0];


При нажатии:

var t:Number;
var upperItem:MovieClip;
var upperDepth:Number=-1000;
for(t=0; t<thumbsArray.length; t++)
{
if(thumbsArray[t]!=thumb)
{
thumbsArray[t].unselect();
}
if(thumbsArray[t].getDepth()>upperDepth)
{
upperDepth=thumbsArray[t].getDepth();
upperItem=thumbsArray[t];
}
}

for(t=0;t<thumbsArray.length; t++)
{
if(thumbsArray[t]._number==n)
{
thumbsArray[t].select();
trace("upper item="+upperItem+" upper depth="+upperDepth);
trace("depth before: "+thumbsArray[t].getDepth());
thumbsArray[t].swapDepths(upperItem);
trace("after before: "+thumbsArray[t].getDepth());
//trace("depth after: "+thumbsArray[t].getDepth());
pressedItem=thumbsArray[t];
break;
}
}



Не меняется глубина у нажатого мувика, хоть ты тресни

P.S. Мувики с классами .as
P.S. Если в _root аттачить, меняется глубина, а если в мувик, то не меняется

dark256
07.05.2011, 02:39
1. depthCounter++;
Ммм..... там есть какая-то фигня трудноуловимая и слабодокументированная, в результет которой я обычно следующую глубину считаю как минимум +2... а для чистоты вообще на 10 умножаю

2. Где у вас нажатие мувика?

и вообще зачем вы эту глубину считаете, когда есть
там_где_мувики_втыкаем.getNextHighestDepth() ?

и ее же можно и нужно юзать при swapDepths()

"_fotogalleryThumb_" + Math.random()
А это зачем? У вас же есть индекс цикла.

djyamato
07.05.2011, 12:36
1. depthCounter++;
Ммм..... там есть какая-то фигня трудноуловимая и слабодокументированная, в результет которой я обычно следующую глубину считаю как минимум +2... а для чистоты вообще на 10 умножаю


Действительно, помогло, спасибо :)


2. Где у вас нажатие мувика?
Нажатие мувика в классе мувика у меня.

и вообще зачем вы эту глубину считаете, когда есть
там_где_мувики_втыкаем.getNextHighestDepth() ?
и ее же можно и нужно юзать при swapDepths()

Я по-разному делал, этот вариант, просто, оставил, к тому же, я исключаю возможность аттача мувика в отрицательную глубину


"_fotogalleryThumb_" + Math.random()
А это зачем? У вас же есть индекс цикла.
Привычка :)

dark256
07.05.2011, 12:52
"_fotogalleryThumb_" + Math.random() ... Привычка
Ну, знаете ли... Когда клипы получат одинаковые имена, несмотря на всю рандомность, можно полысеть будет впоследствии этот глюк лоцируя. ;)

djyamato
07.05.2011, 14:43
верно, спасибо, буду учитывать