Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Перетаскивание мышью большого слоя (http://www.flasher.ru/forum/showthread.php?t=136581)

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- без отцентровки.


Часовой пояс GMT +4, время: 13:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.