![]() |
прилипание
Как можно сделать как бы прилипание края одного мувика к краю другого, т.е. если один тащим к другому и растояние меньше чем n, то прилипаем?
|
n = 15;
dis_x = mc1._x+mc1._width-mc2._x; dis_y = mc1._y+mc1._height-mc2._y; //(если начало координат - левый верхний угол) if (n<=abs(dis_x && mc1.drag)) {mc1._x = mc2._x+mc2._width;} if (n<=abs(dis_x && mc2.drag)) {mc2._x = mc1._x+mc1._width;} if (n<=abs(dis_y && mc1.drag)) {mc1._x = mc2._y+mc2._height;} if (n<=abs(dis_y && mc2.drag)) {mc2._x = mc1._y+mc1._height;} |
какой-то очень странный код, или это шифр?
|
Это старинное шаманское заклинание. Читать при луне в пятницу.
вместо if (n<=abs(dis_x && mc1.drag)) {mc1._x = mc2._x+mc2._width;} я бы написал: if (n<=abs(dis_x && mc1.drag)) mc1._x = mc2._x+mc2._width |
зато места мало занимает ... оптимизация кода так сказать ...
|
смешно, я говорю, о работе данного скрипта
|
здарова серёга ...
работу не проверял поэтому и смешно ... :-))) |
Вложений: 1
а я проверял, где прилипание не пойму
|
Вложений: 1
Вот правильный вариант, протестил:
onClipEvent (load) { var X,Y,D,minD } onClipEvent (enterFrame) { _x=_root._xmouse _y=_root._ymouse minD=30//расстояние до залипания X=_root.mc1._x Y=_root.mc1._y D=Math.sqrt(Math.pow(X-_x,2)+Math.pow(Y-_y,2)) if(D<minD)_x=X,_y=Y } |
спасибо, а как сделать прилипание к краю, к тому же объект неровный.
у гурского есть примерчик, но там реализовано на движении, а для моей ситуации пока не выходит, буду разбираться |
| Часовой пояс GMT +4, время: 09:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.