![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 99
|
Как осуществить плавное изменение координат клипа при изменении _xmouse и _ymouse (при движении мышью)?
|
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
реализовать инерцию
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Обычно я пользуюсь формулой
где speed - скорость, задаваемая вручную или программно.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 31.10.2006 в 02:43. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Более корректное решение:
//// mc - имя вдигающегося клипа
mc.onMouseMove = function () {
this.speed = 5;
this.onEnterFrame = function () {
var dx = this._x - this._parent._xmouse;
var dy = this._y - this._parent._ymouse;
this._x -= dx / this.speed;
this._y -= dy / this.speed;
if (!(Math.abs (dx) > 0.01 && Math.abs (dy) > 0.01)) {
this._x = this._parent._xmouse;
this._y = this._parent._ymouse;
delete this.onEnterFrame;
}
};
};
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 99
|
Спасибо преогромное!
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А у меня что-то вроде this._x += (_xmouse-this._x)/speed;
![]() |
|
|||||
|
Регистрация: Oct 2002
Адрес: Санкт-Петербург
Сообщений: 44
|
Огромное спасибо Dimalar`у за вопрос и iNils`у за ответ!
Если никто не возражает, я разовью тему... Как ограничить перемещение мувика по сцене собственными границами... Примерчик прикрепил для удобства. Условия: сцена размером 760*220 и мувик размерами 900*300. Задача: при достижении одного из краёв мувика границы сцены движение должно прекратиться. Т.е. красная линия в кадре появляться не должна...
__________________
Горячий самовар, медовые коврижки. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Ещё хотелось бы заметить, что лучше не делить на скорость, а умножать. Тогда можно будет задавать скорость 0 для каких-то нужд.
__________________
Reality.getBounds(this); |
|
|||||
function check(mc:MovieClip){
var upY:Number=Stage.height/2+(mc._height/2-Stage.height/2);
var downY:Number=Stage.height/2-(mc._height/2-Stage.height/2);
var rightX:Number=Stage.width/2+(mc._width/2-Stage.width/2);
var leftX:Number=Stage.width/2-(mc._width/2-Stage.width/2);
if(mc._y>=upY){
mc._y-=4;
}
if(mc._y<=downY){
mc._y+=4;
}
if(mc._x>=rightX){
mc._x-=4;
}
if(mc._x<=leftX){
mc._x+=4;
}
}
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Wolsh, можно и умножать.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|