Помогни ни да направим Uroci.net по - богат! Добави урок

Задаване на скорост на курсора - Flash

asdgjr   трудност:    видян: 7920

Този урок, ще ви покажем как да си направите собствен курсор за 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-ът се приближава до курсора. Делението след това служи за да може да се задава скорост на придвижване.

Това е всичко. Успех!



Коментари (2)

fantasmo на 15.04 2009 в 21:04ч.
Трябва да се внимава, защото при много ниска стойност на speed, клипа изостава от истинската мишка сериозно. Освен това не се променя скоростта като цяло, а само ускорението(скоростта на реакция на мишката).
FAT на 21.12 2009 в 20:31ч.
Има и по лесен начин (говорим за AS2.0):

Mouse.hide();
startDrag(cursor_mc,true);

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: IT Новини