Форум 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)
-   -   заставить Object таскаться за мышкой только по вертикали (http://www.flasher.ru/forum/showthread.php?t=154752)

Maria68 21.04.2011 19:31

заставить Object таскаться за мышкой только по вертикали
 
Как? делаю через startDrag()

udaaff 21.04.2011 19:48

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

Maria68 21.04.2011 19:49

Ну да, только не получается задать почему-то, не реагирует.

udaaff 21.04.2011 20:43

Покажите, как вы делаете.

Maria68 21.04.2011 20:54

Я вроде уже поняла как, но что-то запуталась с координатами. У меня объект больше сцены, шириной 800. координаты здесь берутся самой сцены или както пересчитываются относительно родителя?
Код AS1/AS2:

this.startDrag("",false,this._x-400,this._y,this._x-400,this._y);

Добавлено через 1 минуту
сейчас смотрю - какая-то галиматья....))))

udaaff 21.04.2011 21:16

Есть startDrag() метод мувиклипа, а есть функция. Поэтому у вас путаница с параметрами.
Код:

public startDrag([lockCenter: Boolean], [left: Number], [top: Number], [right: Number], [bottom: Number]) : Void
Код:

startDrag(target:Object, [lock:Boolean, left:Number, top:Number, right:Number, bottom:Number]) : Void

Координаты объекта в родителе указываются.

Maria68 21.04.2011 21:29

Даже и не знаю почему путаница .
Сцена 300, объект 700 по ширине
Пишу
startDrag(LittleZipper_mc,false,-200,-435,500,0);
получаю, что да - налево и вверх он не движется, зато вправо - пожалуйста, хотя граница задана

Добавлено через 1 минуту
И вдобавок он передвигается при клике... ну уж вообще...

olexandr 22.04.2011 02:34

Цитата:

Код AS1/AS2:

startDrag(LittleZipper_mc,false,-200,-435,500,0);


Особо не вникал, но тут уже видна ошибка. Вы задаете границы для мувика что ли, на самом деле нужно задавать границы для точки регистрации мувика. Вы своему объекту разрешили двигаться по горизонтали от -200 до 500. Если он должен двигаться только по вертикали, то left и right должны быть равны.

Код AS1/AS2:

startDrag(LittleZipper_mc,false,-200,-435,-200,0);


Maria68 22.04.2011 14:20

Да, спасибо, я к этому уже пришла опытным путем)))) не сразу просто понятно, что все цифровые параметры относятся к координатам(0,0) родителя

dark256 22.04.2011 15:20

Причем к локальным координатам.
Если родитель отмасштабирован, передвинут и еще и повернут - то координаты будут совершенно произвольные. Готовьтесь вдумчиво читать про localToGlobal() :)

Mulin 22.04.2011 20:44

А я делал следующим образом
Код AS1/AS2:

target_mc.onMouseMove = function()
{
        target_mc._y=_ymouse;
}

а тама уже либо через onEnterFrame либо через событие onMouseMove либо onPress


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

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