PDA

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


Galleon
15.01.2008, 20:18
Необходмо перетаскивать мувик по наклонной прямой с углом 45 градусов.

Пробывал использовать startDrag(), но им можно таскать в любую сторону.

В ActionScript 2.0 startDrag() можно было ограничить макс и мин значениями координат для перетаскивания, но это всеровно нето, так как мне нужно именно по наклонной в 45гр.

etc
15.01.2008, 23:23
И что именно у вас не получается? «Нужно» это не здесь, это вниз по лестнице.

Galleon
16.01.2008, 02:04
И что именно у вас не получается? «Нужно» это не здесь, это вниз по лестнице.
Не получается сделать так, что бы можно было тащить только в одном направлении (по наклонной), а не во все стороны таскать.

me2
16.01.2008, 02:23
Попробуй так:
начинай таскать, проверяй координаты, если объект съезжает с вектора, правь координаты...
или:
создай родителя, сунь в него дитё, начинай таскать дитё с ограничением левого и правго барьера. Далее поверни родителя на 45 градусов.. :)

terbooter
16.01.2008, 09:02
В тройке тоже можно ограничить область перемещения,
Если нужно заставить Display Object таскаться мышкой не по всей области плеера, а только по горизонтали (или вертикали)

var rec:Rectangle = new Rectangle(x, 0, width, 0);
this.startDrag(false, rec);

Под 45 градусов можно делать что-нибудь такое:
var s:Sprite=new Sprite();
s.graphics.beginFill (0x555555);
s.graphics.drawCircle (10,10,10);
addChild (s);
s.startDrag (true);

this.addEventListener (Event.ENTER_FRAME,onNewFrame);
function onNewFrame (e:Event)
{
s.x=mouseX;
s.y=300-s.x;
}

Galleon
16.01.2008, 20:38
terbooter,
Большое спасибо, второй способ помог!

badun
16.01.2008, 21:43
ты бы лучше me2 поблагодарил

xanderello
17.01.2008, 02:50
А можно еще юзать сет и гет :) Извращенно, но эстетично

vic_
18.01.2008, 14:21
можно при перемещении мышки находить ближайшую точку к заданному вектору

Galleon
18.01.2008, 16:31
vic_,
Тоже класный пример, благодарю!

$mival
18.01.2008, 16:51
По нажатию начинаешь обрабатывать MouseEvent.MOUSE_MOVE
А в обработчике математика начальных классов, сравнивай текущие координаты и предыдущие.
По отпусканию удаляешь слушатель.