Курсор (с променлива скорост)
Автор: sova
Този урок, ще ви покаже как да си направите собствен курсор за Flash проекта ви. Тук обаче ще предложа вариант не само за обикновен курсор (такива уроци с лопата да ги ринеш), а и за един по-различен курсор, на който може да се задава скорост.
- Проверете с колко кадъра в секунда се възпроизвежда проектът ви. Аз лично използвам за всички мои работи 30 fps (frames per second – кадъра в секунда), но всяка стойност над 24 (и не прекалено голяма) е добре. Ако не сте много сигурни какво означава тази стойност – задайте я на 30.
.: Modify > Document… >
.: Frame rate: 30
Ok
- Направете един MovieClip, който ще представлява курсорът.
.: Нарисувайте графиката за курсора ви.
.: Modify > Convert to Symbol…
.: Name: Cursor
.: Type: MovieClip
.: Registration: Най-горе вляво. (Всъщност тази точка определя къде ще е активната зона на курсора – тази, с която се натискат бутоните и пр. Обикновено тя е най-горе вляво, но има и изключения. Например ако курсорът ви е във формата на мерник – тогава тази точка (Registration) трябва да е посредата. Помислете – всичко зависи от индивидуалните нужди на потребителя.
Ok
- Дайте име на MovieClip-a: cursor_mc.
.: Селектирайте курсора.
.: В панела ‘Properties’ за име на инстанцията (Instance Name) напишете: cursor_mc
- В кадър 1 на главната (_root) времедиаграма поставете следния скрипт:
Mouse.hide();
var speed:Number = new Number(20);
cursor_mc.onEnterFrame = function() {
this._x += this._xmouse/(20/speed);
this._y += this._ymouse/(20/speed);
};- Тествайте проекта.
.: Control > Test Movie
Интересното на този начин на скриптиране на курсора е, че може да му се зададе скорост. Пробвайте само в този ред:
var speed:Number = new Number(20);….вместо двайсет да дадете някаква друга стойност на променливата speed (между 0 и 20, без нулата). Например 5. Тествайте отново (стъпка 4). Ще забележете как курсорът се забавя постепенно.
Ако не ви интересува как работи скрипта – за вас урокът свършва тук.
Обяснение на скрипта
Mouse.hide();Разбира се от самосебе си. Скрива стандартния курсор.
var speed:Number = new Number(20);Създава променлива от типа Number с име speed и й задава стойност 20. Тази променлива определя скоростта на курсора. Тя трябва да е положително число по-малко от 20. (По-малко от 20 е заради по-нататъшния вид на скрипта, иначе няма ограничения – експериментирайте!)
cursor_mc.onEnterFrame = function() {
//тука е самата фунцкия, която ще обясня след малко
};Това е началото на една функция, която е присвоена към метод за манипулатор на събитие. Казано по-просто: При всяко настъпване на събитието onEnterFrame (в cursor_mc) ще се изпълнява function – всичко, което е заградено в средни скоби (‘{‘ и ‘}’). А самата функция е:
this._x += this._xmouse/(20/speed);
this._y += this._ymouse/(20/speed);
Координатите на MovieClip-a се увеличават с координатите на истинския курсор спрямо MovieClip-a. Резултатът от това е, че MovieClip-ът се приближава до курсора. Делението след това служи за да може да се задава скорост на придвижване.
Това е всичко. Успех!


