Форум 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)
-   -   А как сделать так, чтобы объект двигался за курсором? (http://www.flasher.ru/forum/showthread.php?t=88698)

Martoon 28.11.2006 22:04

А как сделать так, чтобы объект двигался за курсором?
 
Как делать, чтобы мув, кнопка или сгрупированый объект двигались за курсором? Объясните поочерёдно.

motor4ik 28.11.2006 22:23

ну для начала их нужно натренировать, ну там может в клуб какойнить отдать чтобы команды понимали, и потом фасс курсор ))

сгруппированый объект нельзя будет двигать, муву имя давай кнопке тохе потом координаты приравнивай мышиным

MOHCTEP 28.11.2006 22:33

По любому нужному событию, например движению мыши, передавать координаты курсора объекту.
Допустим так:
Код:

//obj_mc - какой-то объект, бегущий за мышой
this.onMouseMove=function(){
obj_mc._x=_xmouse;
obj_mc._y=_ymouse;
}


Martoon 05.12.2006 00:38

А одновременно _x и _y?

etc 05.12.2006 01:01

Martoon, а в примере разве не так?

Martoon 05.12.2006 17:16

Извини, не заметил ";" :D :confused: . Подумал, что 2 разные команды, а так, спасибо.

swfstar 05.12.2006 17:30

Вот те, писать это надо на мувике!
Код:

onClipEvent(enterFrame){
_root.movie._x=_root._xmouse;
_root.movie._y=_root._ymouse;
}

Наслаждайся!

Aziz Zaynutdinoff 05.12.2006 17:50

Цитата:

Сообщение от swfstar
Вот те, писать это надо на мувике!
onClipEvent(enterFrame){
_root.movie._x=_root._xmouse;
_root.movie._y=_root._ymouse;
}
Наслаждайся!

Вы зачем человека к нехорошему приобщаете? :)
Подобные конструкции уже давно не используются.... Даже если и использовать сиё, тогда зачем _root.movie, если мы и так находимся на этом _root.movie...

:D

Martoon 09.12.2006 18:41

А почему это с if не работает?

CorC 09.12.2006 18:43

с каким if? в какой ситуации? код пожалуйста

Martoon 09.12.2006 23:11

Пишу:
Код:

if(press){onClipEvent(enterFrame){
_root.movie._x=_root._xmouse;
_root.movie._y=_root._ymouse;
}}

[iNils: Для оформления своего кода, надо использовать теги [code][/code]]

Может в () я что-то не то написал, но ошибка именно if

DarkLight 09.12.2006 23:22

забудь про onClipEvent!

пиши myClipName.onEnterFrame

MOHCTEP 10.12.2006 01:41

Мда-с! Вы - чудо!
Неясно, чего вы там жмете и чего, от того должно двигаться?
Попробуйте это...
Код:

movie.onPress=function(){
this.onEnterFrame=function(){
_x=_xmouse;
_y=Ymouse;
}
}
movie.onRelease=function(){
this.onEnterFrame=null;
}

И пользуйте теги в ваших мессагах

Martoon 10.12.2006 17:10

Цитата:

..._x=_xmouse;
_y=Ymouse;...
А может не Ymouse, а ymouse?

Martoon 10.12.2006 17:15

И ещё, что такое тег и что такое мессаг?

DarkLight 10.12.2006 17:44

Мессаг - сообщение форума
Тег - например, чтобы код отображался в нормальном виде

Martoon 10.12.2006 19:27

Учту.
А на 14-ый вопрос?

Pow R. Toc H. 10.12.2006 19:50

Цитата:

Сообщение от Martoon
Учту.
А на 14-ый вопрос?

наверное да.. подумай сам...

Martoon 10.12.2006 21:54

Я ещё новичок в этом деле.

CorC 11.12.2006 11:10

я так почитал, может ему драг нужен? судя по тому что вверху этой страницы написано
не Ymouse а _ymouse

Martoon 11.12.2006 17:43

1) А драг - это что?
2) Вроде там Ymouse
И люди, не отклоняйтесь от темы.
Фу, ничего не работает с if.

Aziz Zaynutdinoff 11.12.2006 21:09

1) Драг он же Drag (Тащить с английского). Есть метод такой у MovieClip'а
Т.е. предположим у тебя на сцене лежит мувик my_mc, который тебе надо водить за мышкой, так вот просто пишешь
Код:

my_mc.startDrag(); //таскать мувик за мышкой
my_mc.stopDrag(); //соответственно отпустить мувик


Aziz Zaynutdinoff 11.12.2006 21:10

2) Всё же там должно быть _ymouse

Martoon 11.12.2006 22:38

Пишу на кадре на сцене (на муве выдаёт ошибку)
Код:

h.startDrag();
Не идёт.

А как с if типо
Код:

if(press){h.startDrag();}
else{h.stopDrag();}


etc 11.12.2006 22:42

Martoon, может пора книжку купить?

CorC 12.12.2006 10:00

Цитата:

Сообщение от __etc
Martoon, может пора книжку купить?

и то верно а то с аналогичными темами :mosking:

пишешь startDrag ставишь на него курсор, нажимаешь на хелп и читаешь :rtfm:

Martoon 12.12.2006 17:11

А где я книжку возьму?
Я по английски читать почти не умею.

CorC 12.12.2006 17:36

ну знаешь :) вобщето сущуествует куча переведенных на русский библий всяких :)

etc 12.12.2006 18:15

Martoon, как ни странно — в книжном магазине. И на русском языке.

Martoon 12.12.2006 20:19

А я не знаю где такие книжные магазины находятся.
И вопще-то форум нужен чтоб говорить ответы, а не советовать где их искать (по крайней мере я так считаю ). :)

nouba 12.12.2006 20:46

Мдя ... мэн... ещё чуток и тебя найдут :)))
И роскажут что такое драг, мув и т.д. !
Харош народ долбить

CorC 13.12.2006 10:00

но если ты даже не понимаешь о чем мы говорим
нужно же иметь начальные навыки что ли
или хоть капельку знаний, дядя за тебя все-все делать не будет

Martoon 14.01.2007 00:20

Кстати, я купил книжку...

Не помогло

wvxvw 14.01.2007 02:52

Нужно делать в такой последовательности:
Купил книжку, открыл ее на последней странице, отлистал пару страниц назад - там будет предметный указатель. Все термины встречающиеся в книжке в алфавитном порядке. Вот там и искать незнакомую\нужную тему. Дальше: прочитать нужную тему, попробовать воспроизвести пример из темы, попробовать немного изменить пример из темы. Попробовать совместить с примером из соседней темы. Отлистать к началу раздела, прочитать вступительную статью.

Если все это не помогло вбить несколько ключевых слов из того, что нужно сделать в каком-нибудь поисковике, Yandex, или Google например. Если и это не помогло - тогда спрашивать.

И это не потому, что я или кто-то из выше отписавшихся злой и ленивый, и ему жалко написать код вместо тебя. Дело в том, что форум - это ресурс для всех, и поиск по форуму - далеко не последняя по значимости возможность. Но если форум захламливать одинаковыми вопросами, то искать тут будет труднее.

А сейчас по теме:
Изменить положение клипа можно переопределив его свойства _x и _y, узнать текущее положение курсора относительно клипа можно из свойств клипа _xmouse, _ymouse. Если нужно чтобы перерассчет координат клипа происходил не единожды, а в течение какого-то времени, то можно использовать onEnterFrame(), setInterval().

Предположим, что клип, который нужно двигать за курсором называется _mc, тогда код будет выглядеть так:
Код:

_mc.onRollOver = function() {
        this.onEnterFrame = function() {
                this._x = this._parent._xmouse-this._width/2;// кроме того отцентрирует клип
                this._y = this._parent._ymouse-this._height/2;// относительно курсора
        };
};


Kikasso 14.01.2007 19:29

Можно и так, добавить немного инерции:
Код:

function startFollowMouse(){
 this.onEnterFrame = function(){
  this._x = ( this._x + this._parent._xmouse)/2;
  this._y = ( this._y + this._parent._ymouse)/2;
 }
}
function stopFollowMouse(){
 this.onEnterFrame = null;
}
<клип>.onPress = startFollowMouse;
<клип>.onRelease = <клип>.onReleaseOutside = stopFollowMouse;



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

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