PDA

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


Timmm
20.02.2010, 01:31
Решил сделать "флэш-карту". Состоит из 2 групп слоев: верхний слой - менюшка с рамкой, под ним слой с картой. Кнопку увеличения размера нижнего слоя (чтобы на карте можно было подробно все расмотреть) попробовал реализовать как переход на другой кадр с увеличенным вдвое размером слоя с картой. Переход выполняется, все слои в нужном порядке. А вот перетащить слой с картой способом drug-and-drop (ниже) получается вместе со всеми слоями, хотя скрипт только для нужного слоя написан. ВОПРОС: как сделать, чтобы слой с меню и рамкой (верхний слой) при перетаскивании не двигались, а перемещался только нижний слой?
пользовался этим:
on (press) {
startDrag (this);
}
on (release) {
stopDrag ();
}

samana
20.02.2010, 02:49
Это потому, что карту вы сделали символом button, а события кнопок действуют не так как для мувиклипов. Код this или _x ... _y ....написаный в кнопке, ссылается на то место, где расположена эта кнопка, в данном случае на _root. А мувиклипы так не поступают, они ссылаются на себя.
Решения:
а) Сделайте карту мувиклипом, и тогда код будет работать исправно.
б) Не делайте карту мувиклипом, но тогда присвойте этой карте-кнопке имя "map" и ссылайтесь на него. Тоесть код должен быть таким:
on(press){
startDrag(map);
}
в)не пишите код в кнопках или в клипах, пишите его в кадре главной сцене
map.onPress=function(){
startDrag(this)
}
в этом случае как кнопка так и клип будут работать предсказуемо.

Timmm
20.02.2010, 12:04
Спасибо, очень помогли. Поступил вот как - преобразовал кнопку в мувиклип, именно кнопка и именно внутри мувика работает как надо. Просто мувик на мышь не отзывался, а кнопка неадекватна была, как Вы писали. Теперь пытаюсь границы передвижения установить без центрирования, чтобы при захвате на центр мувика не переносило, а именно с места захвата движение начиналось ))

samana
20.02.2010, 14:37
Для этого в методе StartDrag уже определён выбор, вторым параметром. Тоесть
map.startDrag(this,false) //true - отцентровка по центру ,false- без отцентровки.