![]() |
|
||||||||||
|
|||||
|
Коллеги, помогите никчёмному малевальщику. Я в формулах и уравнениях не силён, а требуется написать скрипт для такой штуки:
клип шевелится в сторону, противоположную движению мышки, но не линейно, а с коэффициентом и плавно замедляясь, при остановке мышки. После того как мышь выходит за пределы рабочей области, клип возвращается на исходное место, так же плавно замедляясь. А? |
|
|||||
|
Нашёл скрипт, который заставляет клип бегать за курсором нужным образом. Как его модифицировать, чтобы клип бегал в противоположную сторону?
pic.onMouseMove = function () {
this.speed = 0.1;
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;
}
};
};
|
|
|||||
|
[+4 08.04.08]
|
pic.onMouseMove = function () {
this.speed = 0.1;
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;
}
if (pic._x < 0 || pic._y < 0 || pic._x > Stage.height || pic._y > Stage.width)
{
pic._x = Stage.width/2;
pic._y = Stage.height/2;
}
};
};
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
а как сделать что бы клип не уезжал за экран а плавно останавливался?
посмотрите как тут здорово сделано))))) вот бы тоже так забабацать)))) http://www.ffk-schick.com/ru/ если кто знает напишите плиз очень нужно и еще инетересно как сделано что разные клипв по разному смещаются? видимо смещение предусмотрено)))) Заставку можно пропустить)))) |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
AlexDesinger, положение упаковки просто инвертировано положению мыши, деленному на какоето число. Если Вам известны высота и ширина сцены, и размеры клипа, кудаж он уедет?)))) Для маленьких клипов то же правило.
В общем виде так (стандартная точка привязки) границы конечно можно урегулировать, если не нужно движение от борта до борта)))
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 26.06.2008 в 00:53. |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
да это все так но как сделать что бы происходило замедление и остановка?
Ну т.е чтобы мувик не моментально реагировал на двиение ясно что через onEnterFrame но у меня в голове неукладывается как это можно посчитать... На примере выше происходит наоборот ускорение...чем дальше друг от друга мувик и курсор, тем быстрее скорость |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
вот нашел наконец что-то похожее
function CursorMovement() {
speed = 0.9;
dx = speed*(dx-_xmouse)+_xmouse;
dy = speed*(dy-_ymouse)+_ymouse;
mc._x = (1-mc._width/Stage.width)*dx+mc._width/2;
mc._y = (1-mc._height/Stage.height)*dy+mc._height/2;
}
setInterval(CursorMovement,100);
Вот теперь как бы придумать чтобы , скажем два или три клипа смещались немного поразному, но при этом не перегрузить проц? Последний раз редактировалось AlexDesinger; 27.06.2008 в 17:43. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Так Вам инерции чтоли не хватает? ОК, тормозим!
mc.onMouseMove = function () {
this.cell_x = Stage.width-this._width-_xmouse + this._width/(Stage.width/_xmouse);
this.cell_y = Stage.height-this._height-_ymouse + this._height/(Stage.height/_ymouse);
}
mc.onEnterFrame = function () {
this._x = this._x + (this.cell_x - this._x)/10
this._y = this._y + (this.cell_y - this._y)/10
}
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
Офигеть, просто!!! Круто....то что надо!!! Спасибо)))))))))))
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 563
|
Wolsh, подскажи плиз как мне сделать, чтобы клип mc двигался не по всей поверхности Stage, а находился внутри клипа, скажем clip_mc и двигался только в пределах границ этого клипа?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|