PDA

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


rukez
24.07.2005, 22:34
Замучался уже весь :) Как сделать драг который работает только в одной оси - т.е. нужно чтобы при драге мувик двигался ТОЛЬКО в одной оси (например по y) и желательно прикрутить к этому ограничение (от а до б).
Пробовал делать по принципу

_root["window"+(index)].button_move.onDragOut = function (){
_root[this._parent._name].button_move._y = _root._ymouse;
};

или что-то в этом духе, но если резко дёрнуть мышью, то мувик её теряет :(
---
По сути при нажатии на button_move она должна перейти в режим .startDrag НО! двигаться только по оси У пока её не отпустят. Самый простой пример - не развёрнутое на полный экран виндовское окошко - нижняя грань которая делает ресайз окна, о как завернул :)
П.С. не бейте за странный код - просто кусок из кода где генерится массив мувиков с последовательными именами - отсюда и index и кривые обращения через _parent._name - но это тема другого вопроса :)

rukez
24.07.2005, 22:36
Да, уже впринципе думал сделать маску по ширине мувик высотой в весь stage и увеличить ширину самого мувика в 3 раза - тогда впринципе получится то что надо, но как-то больно коряво ... %(

Den0k
24.07.2005, 23:08
всё просто решается через StartDrag
_root.drag_mc.onPress = function() {
_root.drag_mc.startDrag(true, _root.drag_mc._x, /*top*/, _root.drag_mc._x, /*bottom*/);
};

rukez
25.07.2005, 00:07
Вау ! :) Спасибо огромное - целый день бился :) Впринципе получилось через маску но очень криво :) Так намного лучше ессно - просто как-то в мануале через Ж написано про опциональные к драгу ("left, top, right, bottom Values relative to the coordinates of the movie clip's parent that specify a constraint rectangle for the movie clip. These parameters are optional.")
Ещё раз спасибо :)