on (mouseMove)

8 отговора 290 прегледа
#1

on (mouseMove)

Погледнете този сайт:
[линк]

Опитвам се да си направя подобни ефекти при движение на мишката върху някой обект в тази анимация:
[линк]

Обаче моите балончета излизат по-начесто и претрупват екрана
Сложих двете странички една до друга и сравнявах ефекта при движение на мишката - при мен балончетата са повече.

Според вас на какво се дължи това - в техния скрипт има код, който да спира изпълнението на процедурата за част от събитията, или има начин да се настрои с каква честота постъпват събитията?

Благодаря предварително...

Отговор
в отговор на vens #2

Re: on (mouseMove)

[линк]

Отговор
в отговор на cadavre #3

Re: on (mouseMove)

Мерси за линка! Отне ми известно време, докато открия ефекти, подобни на моя - не става дума за Mouse trailer, а за обекти, генерирани при движението на мишката.
Виж какво намерих там:
[линк]

Ще забележиш, че при мен обектите се генерират доста по-начесто, отколкото в примера (имай предвид и, че в примера се генерират по 3 цветчета наведнъж).
Специално си играх с много малки движения на мишката при голям zoom при двете анимации - при мен генерира с ПЪТИ повече обекти.

Някъде трябва да има някаква настройка, но не знам какво и къде да търся
Или просто да добавя код, селективно потискащ изпълнението на процедурата?

Отново благодаря предварително

Отговор
в отговор на vens #4

Re: on (mouseMove)

100% това се определя от ActionScript-a. Ако вземеш да го сложиш тука може и да ти помогне някой

Отговор
в отговор на lazo #5

Re: on (mouseMove)

ами не, всъ6нотост не се определя от AS.
ако си свали6 fla-то, ще види6, 4е има само един action:
on (rollOver, dragOver) {
gotoAndPlay(2);
}
on (press) {
gotoAndPlay(31);
}
тва е, дано да имам време по-късно да ти потърся нещо, това мисля че няма да ти свърши работа.

Отговор
в отговор на vens #6

Re: on (mouseMove)

_root.onMouseMove = function() {
var cur_x = this._xmouse;
var cur_y = this._ymouse;
var limit = 10;
var mini = 1;
var max = 60;
var alfa = 10;
var delta_x = (old_x-cur_x);
var delta_y = (old_y-cur_y);
var dist = Math.sqrt((delta_x*delta_x+delta_y*delta_y));
old_x = cur_x;
old_y = cur_y;
if (dist>limit) {
i++;
_root.attachMovie("particle", ("l"+i), (10+i));
with (_root[("l"+i)]) {
var ran = (Math.random()*max+mini);
var ran2 = (Math.random()*alfa-alfa/2);
_rotation = ran2;
_xscale = _yscale=ran;
_x = _parent._xmouse;
_y = _parent._ymouse;
}
}
};

правиш си едно MC с движението, като на последния му фрейм пишеш:
stop()
this.removeMovieClip()
даваш линк на това MC с името "particle" и си готов

Отговор
в отговор на cadavre #7

Re: on (mouseMove)

Мерси за скрипта. Аз го мислех по малко по-друг начин, но и твоя е добър. Между другото, намерих още такива, подобни на моя и ще видя при тях как е направено.

Отговор
в отговор на vens #8

Re: on (mouseMove)

ами не че нещо, ама това е скрипта от сайта, който си дал за пример. Аз от там го отмъкнах щото ме домързя да го пиша

Отговор
в отговор на cadavre #9

Re: on (mouseMove)

Само дето ако правиш малки движения с мишката, по-малки от граничното разстояние, няма да се задейства процедурата. Аз си мислех да сложа брояч в кода, който да изпълнява процедурата веднъж на всеки N събития от мишката. Така няма значение дали шариш по целия екран или мърдаш само в рамиките на 2-3 пиксела.
Между другото разгледах кода на 3-4 анимации с ефект, подобен на моя. Там не е реализирано с on (mouseMove). Имаше например вариант с разпръснати много статични обекти из екрана - тогава кода се задейства само на тези места.
ОК - мерси пак за линка, схванах вече какъв е проблема

Отговор