PDA

Просмотр полной версии : Уровень мувиклипа


Salut
17.01.2008, 08:49
Здравствуйте! Проблема: в руте есть 4 мувиклипа, нужно сделать чтобы их можно было перетаскивать ( с этим вроде проблем нет), но при этом нажатый мувиклип должен выходить на самый высокий уровень, то есть перекрыть всех остальных ( проблема в этом).
Мой код


function dd(mc_name) {
mc_name.onPress = function() {
this.swapDepths(100);


this.startDrag();
};
mc_name.onRelease = function() {

this.stopDrag();

};
}
for (var i = 1; i<=100; i++) {
dd(this["dg"+i]);

}



НО! swapDepths меняет местами уровни мувиклипов и получается, что, если у нас на самом верху есть мувиклип, и мы на жимаем на тот что на 4 уровня ниже, то 1 уходит в самый низ под всех. А надо чтобы он уходил только на 1 уровень вниз под тот что только что нажали.Помогите пожалуйста :(

iNils
17.01.2008, 08:54
У swapDepths единственный аргумент играет две роли.
1. Указывается непосредственно сама глубина, на которую должен поместиться мувиклип, как в вашем коде.
2. Указывается другой мувиклип, с которым нужно обменться глубинами текущему.

Вам нужен второй вариант.

Salut
17.01.2008, 09:03
У swapDepths единственный аргумент играет две роли.
1. Указывается непосредственно сама глубина, на которую должен поместиться мувиклип, как в вашем коде.
2. Указывается другой мувиклип, с которым нужно обменться глубинами текущему.

Вам нужен второй вариант.

Я так понял, что в swapDephts надо указывать имя мувика который находится в данный момент на самом высоком уровне? если так то помоему получится как я уже описал, что если нажать на мувиклип который ниже всех, то тот что был выше всех станет на самый низ. или я не прав?

DarkLight
17.01.2008, 10:01
Если как аргумент для swapDepths с нижним будет указан верхний - да. А если как аргумент передать результат getNextHighestDepth(), то нижний уйдет наверх, а порядок остальных под ним сохранится

Salut
17.01.2008, 10:22
Если как аргумент для swapDepths с нижним будет указан верхний - да. А если как аргумент передать результат getNextHighestDepth(), то нижний уйдет наверх, а порядок остальных под ним сохранится

сделал так:

function Btn_code(mc_name) {
mc_name.onPress = function() {
mc_name.swapDepths(this.getNextHighestDepth());
this.startDrag();
};
mc_name.onRelease = function() {
this.stopDrag();
};
}

for (var i = 1; i<=1000; i++) {
Btn_code(this["subject"+i]);
}

все равно , если нажать сначала (!) на самый верхний, потом на самый нижний, то верхний меняется с ним местами. (

Salut
17.01.2008, 13:09
http://www.flashygame.net/d/file/make_up/2007-10-29/f7042f0bfbae0acbc5e7cee4f8f2924b.swf
вот пример того эффекта что мне нужен.

Волгоградец
17.01.2008, 13:30
Попробуй _root.getNextHighestDepth().

Salut
17.01.2008, 13:35
Попробуй _root.getNextHighestDepth().
Спасибо, все работает!! теперь обяснил бы мне ктонибудь как это работает, точнее что означачает на нормальный язык .swapDepths(_root.getNextHighestDepth()); какую роль здесь играет _root

Волгоградец
17.01.2008, 14:14
В твоем случае, когда ты использовал this.getNextHighestDepth() - ты ссылался не на уровень основного поля, где находятся все клипы, а на поле того клипа, на который нажимал. Блин, неважный из меня объясняльщик...

Salut
18.01.2008, 07:50
Я понял ) то есть я ссылался не на рут а на временную шкалу клипа.