Този урок, ще ви покажем как да си направите собствен курсор за Flash
проекта ви. Тук обаче ще предложа вариант не само за обикновен курсор
(такива уроци с лопата да ги ринеш), а и за един по-различен курсор, на
който може да се задава скорост.
1. Проверете с колко кадъра в секунда се възпройзвежда проектът ви.
Аз лично използвам за всички мои работи 30 fps (frames per second -
кадъра в секунда), но всяка стойност над 24 (и не прекалено голяма) е
добре. Ако не сте много сигурни какво означава тази стойност - задайте
я на 30.
.: Modify > Document... >
.: Frame rate: 30
> Ok
1. Направете един MovieClip, който ще представлява курсорът.
.: Нарисувайте графиката за курсора ви.
.: Modify > Convert to Symbol...
.: Name: Cursor
.: Type: MovieClip
.: Registration: Най-горе вляво. (Всъщност тази точка определя къде
ще е активната зона на курсора - тази, с която се натискат бутоните и
пр. Обиковено тя е най-горе вляво, но има и изключения. Например ако
курсорът ви е във формата на мерник - тогава тази точка (Registration)
трябва да е посредата. Помилсете - всичко зависи от индивидуалните
нужди на потребителя.
> Ok
2. Дайте име на MovieClip-a: cursor_mc
.: Селектирайте курсора.
.: В панела 'Properties' за име на инстанцията (Instance Name) напишете: cursor_mc
3. В кадър 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);
};
4. Тествайте проекта.
.: 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-ът се приближава до курсора. Делението след това служи за да
може да се задава скорост на придвижване.
Това е всичко. Успех!