Просмотр полной версии : Movie clip, который тормозя следует за курсором
peresmeshnik
03.12.2007, 15:28
Т.е. необзодимо сделать такой клип, который бы бегал за курсором по более сглаженной траектории.
В случае с этим кодом:
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
test._x = _xmouse;
test._y = _ymouse;
updateAfterEvent();
};
Mouse.addListener(mouseListener);
Объект следует непрерывно за курсором, а нужно чтобы он как бы использовал класс Tween, что-ли...
Подскажите пожалуйста, как это сделать!!!!
Molecula
03.12.2007, 15:56
Ну, если по Вашему то так:
var k:Number = 0.1;
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
test._x = test._x+(_xmouse-test._x)/k;
test._y = test._y+(_ymouse-test._y)/k;
updateAfterEvent();
};
Mouse.addListener(mouseListener);
Molecula, что будет, если я остановлю мышь?
Molecula
03.12.2007, 18:02
А может так и задумывалось, я ж написал, мол, "если по Вашему".
Кстати, ошибся, не делить, а умножить надо ставить.
Ну, а вообще, конечно же обычно так пишут:
var k:Number = 0.1;
test.onEnterFrame= follow;
function follow()
{
this._x+=(_xmouse-this._x)*k;
this._y+=(_ymouse-this._y)*k;
}
CrazyFlasher
03.12.2007, 18:09
var vx:Number;
var vy:Number;
var d:Number;
var speed:Number = 5;
var target:MovieClip = _root;
mc.onEnterFrame = function(){
vx = target._xmouse - mc._x;
vy = target._ymouse - mc._y;
d = Math.sqrt(vx*vx + vy*vy);
smooth();
if(Math.abs(mc._x - target._xmouse) > 5 || Math.abs(mc._y - target._ymouse) > 5){
mc._x += vx / d * speed;
mc._y += vy / d * speed;
}
}
function smooth(){
var newD:Number = Math.sqrt((mc._x - target._xmouse)*(mc._x - target._xmouse) + (mc._y - target._ymouse)*(mc._y - target._ymouse));
speed = newD / 10;
}
накидал по-быстрому :) вроде работает
http://www.flasher.ru/forum/showpost.php?p=583096&postcount=4
peresmeshnik
04.12.2007, 01:49
Всем огромное спасибо!!! Как раз то, что было нужно.
this._x = this._parent._xmouse;
Только не понял - для чего был нужен "_parent"? Я его удалил, все равно работает.
peresmeshnik
04.12.2007, 03:56
Если это возможно, то еще один вопрос как раз по теме:
Нужно сделать то же самое, но только для увеличения/уменьшения муви клипа, т.е. проблему можн рассмотреть след образом - есть меню, при движении курсора над элементами они должны соответственно увеличиваться(при приближении) и уменьшаться (при отдалении курсора).
Я понимаю, что это несложно, но мне никак не адаптировать этот код под меню...:umnik2:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.