Преглед на урок

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

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




Този урок, ще ви покаже как да си направите собствен курсор за Flash проекта ви. Тук обаче ще предложа вариант не само за обикновен курсор (такива уроци с лопата да ги ринеш), а и за един по-различен курсор, на който може да се задава скорост.
[html]
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="550" height="400" title="www.Studio-bg.com">
<param name="movie" value="http://itschool.bg/application/uploads/tutorials/img/cursor_speed/cursor.swf" />
<param name="quality" value="high" />
<embed src="http://itschool.bg/application/uploads/tutorials/img/cursor_speed/cursor.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550" height="400"></embed>
</object>
[/html]
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) времедиаграма поставете следния скрипт:
[color=blue]
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

Интересното на този начин на скриптиране на курсора е, че може да му се зададе скорост. Пробвайте само в този ред:
[color=blue]
var speed:Number = new Number(20);

....вместо двайсет да дадете някаква друга стойност на променливата speed (между 0 и 20, без нулата). Например 5. Тествайте отново (стъпка 4). Ще забележете как курсорът се забавя постепенно.

Ако не ви интересува как работи скрипта - за вас урокът свършва тук.

Обяснение на скрипта
[color=blue]
Mouse.hide();

Разбира се от самосебе си. Скрива стандартния курсор.
[color=blue]
var speed:Number = new Number(20);

Зъздава промелива от типа Number с име speed и й задава стойност 20. Тази промелива определя скоростта на курсора. Тя трябва да е положително число по-малко от 20. (По-малко от 20 е заради по-нататъшния вид на скрипта, иначе няма ограничения - експериментирайте!)
[color=blue]
cursor_mc.onEnterFrame = function() {

//тука е самата фунцкия, която ще обясня след малко

};

Това е началото на една функция, която е присвоена към метод за манипулатор на събитие. Казано по-просто: При всяко настъпване на събитието onEnterFrame (в cursor_mc) ще се изпълнява function - всичко, което е заградено в средни скоби ('{' и '}'). А самата фунция е:

[color=blue]
this._x += this._xmouse/(20/speed);
this._y += this._ymouse/(20/speed);


Коордитаните на MovieClip-a се увеличават с координатите на истинския курсор спрямо MovieClip-a. Резултатът от това е, че MovieClip-ът се приближава до курсора. Делението след това служи за да може да се задава скорост на придвижване.

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

Автор: sova


Ако урокът ви допада, споделете го в Twitter и Facebook или го запазете в Delicious.




Урокът е добавен от: toddor

Добави коментар

Трябва да сте регистиран потребител за може да оставяте коментари! Направете своята безплатна регистрация още сега.