Просмотр полной версии : Перемещение объекта нажатием мыши
General303
27.01.2011, 14:38
Скажите как можно реализовать перемещение объекта (это муви клип). В моем случае это карта.
lexa2000lexa
27.01.2011, 14:44
Читайте про startDrag.
Есть много способов, в зависимости от того, как вы хотите двигать:
1) таскать мышкой;
2) двигать, нажимая на кнопочки со стрелками;
3) двигать, просто водя мышкой.
- и еще...
Есть много способов решения для каждого случая.
Например с помощью startDrag-stopDrag самый простое решение для (1), но не самое лучшее в большом количестве случаев, а иногда и просто неприменимое.
В общем, мало инфы.
General303
27.01.2011, 14:47
В моем случае тоскать мышкой, zoom и кнопочки со стрелочками я уже сделал.
Карта это мувик внутри которого идут объекты (названия точки и.т.д.) Должны перемещаться вместе с картой
Почитав про startDrag. Нашел кое что подходящее.
http://www.flasher.ru/forum/showthread.php?t=144718&highlight=startDrag
Единственное что не понятно из этого кода как задать функцию движение по Х.
var y0:Number;
for (i in cont_mc)
{
var mc:MovieClip = cont_mc[i];
mc.onPress = mcOnPress;
mc.onRelease = mc.onReleaseOutside = mcOnRelease;
}
function mcOnPress()
{
this.startDrag(false, this._x, 100, this._x, -100);
y0 = this._y;
};
function mcOnRelease()
{
this.stopDrag();
if (y0 - this._y == 0)
{
someFunc(this);
}
};
function someFunc(mc:MovieClip)
{
trace('Трогали ' + mc + ' - не было перемещения');
}
синтаксис:
startDrag( имя перетаскиваемого объекта, фиксация центра клипа к мыше, l,t,r,b);
пример:
startDrag( myClip, true, -50, 0, 50, 0);//по иску
startDrag( myClip, true, 0, 0, 550, 400);//по всей области окна
l,t,r,b - это ограничения области перетаскивания.
General303
27.01.2011, 15:24
Tails
Получилось только почему то при нажатие объект смещается в лево.
Либо центр объекта привязываеться к мыше (чтоб это убрать, нужно выставить в страрт драге второй параметр false вместо true), либо с кординатами области перетаскивания чевото нетак.
General303
27.01.2011, 15:33
Либо центр объекта привязываеться к мыше (чтоб это убрать, нужно выставить в страрт драге второй параметр false вместо true), либо с кординатами области перетаскивания чевото нетак.
var y0:Number;
for (i in cont_mc) {
var mc:MovieClip = cont_mc[i];
mc.onPress = mcOnPress;
mc.onRelease = mc.onReleaseOutside=mcOnRelease;
}
function mcOnPress() {
startDrag(cont_mc, true, 0, 0, 500, 400);
startDrag(cont_mc, false, 0, 0, 500, 400);
}
function mcOnRelease() {
this.stopDrag();
startDrag(cont_mc, true, 0, 0, 500, 400);
startDrag(cont_mc, false, 0, 0, 500, 400);
{
someFunc(this);
}
};
function someFunc(mc:MovieClip) {
trace('Трогали '+mc+' - не было перемещения');
}
Блин теперь отпускаться не хочет :). После того как мувик схватил он прилипает к курсору и не возможно его положить.
Удалите у себя стоп драг, и добавте в конец кода такую функцию:
_root.onMouseUp = function (){
stopDrag();
}
stopDrag() - глобальный, ему не нужно указывать чего отцеплять.
General303
27.01.2011, 15:41
Все спасибо разобрался
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.