PDA

Просмотр полной версии : Как разобраться с уровнями


Netter2007
01.03.2008, 22:51
Не хватает знаний чтобы решить следующую задачу:
На сцене несколько клипов, они все перекрываются.
Как сделать чтобы перетаскивать верхний в точке клика мыши. ?

Другими словами как получить имя экземпляра клипа который в конкретной точке верхний ?

Надеюсь на помощь

MrPoma
01.03.2008, 22:55
MovieCLip.getNextHighestDepth();
MovieClip.getInstanceAtDepth()
MovieClip.swapDepths()

Netter2007
01.03.2008, 23:39
А как узнать какой клип находится в момент нажатия под курсором ?

iNils
01.03.2008, 23:53
Сделать все клипы кнопками, самый верхний откликниться и назовет себя.

Netter2007
02.03.2008, 00:21
iNils - можно подробнее что значит откликнется и назовет ?
Для меня новая и важная задача, хочу разобраться

DarkLight
02.03.2008, 00:23
onPress/onRelease назначаем всем клипам. При нажатии на точку где несколько таких клипов, вызовется обработчик верхнего из них

Netter2007
02.03.2008, 00:27
Спасибо, до Вашего ответа я сам догадался, все просто, а казалось тяжело,
У меня на сцене куча клипов фото, и их нгадо таскать.

Рано обрадовался, запуталсы в двух соснах.
Мне надо чтобы таскалась одна кнопка а тащатся все которые на сцене, что не так ?

on (press) {
startDrag (this);
}
on (release) {
stopDrag ();
}

Я понимаю что я адресую весь root , но как сделат чтобы таскалась одна кнопка ?

Рано обрадовался, запуталсы в двух соснах.
Мне надо чтобы таскалась одна кнопка а тащатся все которые на сцене, что не так ?

on (press) {
startDrag (this);
}
on (release) {
stopDrag ();
}

Я понимаю что я адресую весь root , но как сделат чтобы таскалась одна кнопка ?

пртшлось все таки явно прописать имена вместо this

Текперь другая проблема,
когда таскаемая кнопка под другой кнопкой нельзя отпустить клип ?
Как быть ?

Как сделать чтобы кнопка отцеплялась когда она под другой кнопкой ?

chingachgoog
02.03.2008, 01:24
я бы вообще не использовал кнопочные события клипов, но раз вы уж начали, то откажитесь хотя бы от onRelease в пользу мышиного события onMouseUp

Netter2007
02.03.2008, 01:38
Крыша едет,
пдскажите код чтобы отцеплялась кнопка когда она под другой.

iNils
02.03.2008, 01:41
Netter2007 получает плюс за мультипостинг.

я бы вообще не использовал кнопочные события клиповФанат хиттеста?

Netter2007
02.03.2008, 02:00
Сделал сам, только кто обьяснит чайнику почему StopDrag прописаный для mc1 срабатывает и для mc2 ?

mc1.onMouseDown = function () {
startDrag (mc1);
};

mc2.onMouseDown = function () {
startDrag (mc2);
};
mc1.onMouseUp = function () {
stopDrag ();
};

iNils
02.03.2008, 02:04
Потому, что onMouseDown это события нажатия кнопки мыши. Вы где угодно можете ее нажать, и оно сработает.
mc1.onPress = function () {
this.startDrag ();
};
mc1.onRelease = function () {
this.stopDrag ();
};
mc1.onReleaseOutside = mc1.onRelease;

Netter2007
02.03.2008, 03:19
Когда mc1 под другим клипом - не всегда срабатывает, как можно получить стабильность, чтобы при отжатии клавиши пекреиаскивание прекращалась для всех клипов ?

MrPoma
02.03.2008, 04:55
...пекреиаскивание...
Чего?

iNils
02.03.2008, 10:20
Когда mc1 под другим клипом - не всегда срабатывает, как можно получить стабильность, чтобы при отжатии клавиши пекреиаскивание прекращалась для всех клипов ?
Вы строчку mc1.onReleaseOutside = mc1.onRelease;написали?

Fann
02.03.2008, 13:53
убери код с кнопок и напиши в руте:


for (var i:Number = 0; i<10; i++) {
this['btn'+i].onPress = Drag;
}
this.onMouseUp = stopDrag;
function Drag() {
startDrag(this);
}
btn1..btnN-названия кнопок, 10 их кол-во).
я бы вообще не использовал кнопочные события клиповА чем плохи onPress и onRelease?

Netter2007
02.03.2008, 15:46
для Fann попробуйте написать для двух клипов и отпусить кнопку когда клип под другим, уменя не срабатывает, вернее срабатывает не всегда.

Fann
02.03.2008, 17:45
у меня все работает), мож я неправильна поняла твою поблему

chingachgoog
03.03.2008, 00:13
Фанат хиттеста?



А чем плохи onPress и onRelease?


не фанат и не плохи, но в данной задаче я бы их не использовал.

iNils
03.03.2008, 01:09
Аргументируйте.

Netter2007
03.03.2008, 02:22
Спасибо iNils и Fann, ваши методы оба отлично работают, но у Fann оптимальнее код.

chingachgoog
03.03.2008, 13:36
Аргументируйте.

Личное предпочтение всего лишь (не нравиться прописывать onReleaseOutside).
Плюс возможно мувикам противопоказаны кнопочные события (по задумке автора) или наоборот у них есть другие события по кнопкам, отличные от начала драга.

iNils
03.03.2008, 13:44
Ясно.